Lautstärke über Drehregler ?

Hi,
wenn du meinen Fork mit einem Drehregler verwenden willst, lade dir bitte das aktuellste Release meines Forks herunter:

Dort findest du im Ordner „Affenbox“ die „Configuration.h“. In dieser sind alle Hardwarekonfigurationen definiert, die vor dem programmieren bekannt sein müssen. Unter anderem auch der Rotary Encoder (Drehregler).
Wenn du in der Datei runter scrollst, kommst du irgendwann zu folgendem Eintrag:


//===========================================================================
//============================= ROTARY_ENCODER ==============================
//===========================================================================
/**
*Gibt die Möglichkeit die Lautstärke der Affenbox über eine Drehencoder zu steuern.
*Hierzu wird extra Hardware benötigt.
*z.B.:
*KY-040 Drehwinkelgeber/Drehgeber
*https://www.az-delivery.de/products/drehimpulsgeber-modul?_pos=1&_sid=85bb51922&_ss=r
*/

//#define ROTARY_ENCODER   

#if defined ROTARY_ENCODER

/* 
*Angabe der Anschlusspins für den Data und Clock Pin des Drehgebers.
*Es kann jeder freie  Pin geählt werden, auch Analoge.
*Ausgeschlossen sind folgende Pins: 4, 9, 10, A7, sowie bereits durch andere Funktionen vergeneben Pins.
 */
#define ROTARY_ENCODER_PIN_A A1 
#define ROTARY_ENCODER_PIN_B A2  

/* 
*Anzahl erkannter Steps pro Klick des Drehgebers.
*Falls der Wert falsch eingestellt ist, werden eventuell mehr als ein Schritt pro Klick erkannt.
 */
#define ROTARY_ENCODER_STEPS 4

/* 
*Nur verwenden, wenn es unbedingt nötig ist! 
*Die Versorgung des Rotary Encoder kann auch von einem IO Pin kommen.
 */
//#define ROTARY_ENCODER_PIN_SUPPLY 8 

/*
*Für genauere Debugausgaben im seriellen Monitor.
*!Achtung! Benötigt viel Speicher, eventuell müssen andere Funktionen temporär deaktivert werden!
*/
//#define ROTARY_ENCODER_PRINT

#endif

So sieht er aus, wenn du ihn herunter lädst. Damit der Encoder funktioniert, musst du die Zeile
//#define ROTARY_ENCODER
umschreiben in:
#define ROTARY_ENCODER

Das aktiviert den Encoder generell. In dem Block findest du auch die Pins die verwendet werden:

#define ROTARY_ENCODER_PIN_A A1 
#define ROTARY_ENCODER_PIN_B A2

PinA & B sind auf dem Encoder mit CLK und DT beschriftet. hier ist in meinem Fork noch Anpassungsbedarf um das verständlicher zu machen. Probier bitte aus wie A & B zu CLK & DT passen.
Wenn du die vertauscht, dann ändert sich nur die Drehrichtung :wink:
Pin A1 & A2 sind auf der AiO Standardmäßig die < / BB und >/FB Buttons. So sind sie auf dem mitgelieferten Buttonboard bzw, der AiO Platine beschriftet. Ich gehe davon aus das man nicht 5 Buttons und Rotary Encoder kombiniert.

Die anderen Parameter lass bitte mal unangetastet. Der Vollständigkeit erkläre ich das aber noch kurz:

#define ROTARY_ENCODER_STEPS 4
Die 4 definiert die Steps die der Encoder pro Click macht. Es kommen bei dem KY040 idR 4 impulse an pro Click. Wenn du wieder erwartens komisches Verhalten in den Schritten haben solltest, z.B. das die Lautstärke sich zu stark ändert, dann kannst du hiermit probieren das zu beheben.

//#define ROTARY_ENCODER_PIN_SUPPLY 8
Ist ein Hilfskonstrukt, falls einem an einer Klassik die 5V Pins ausgehen. Ist aber eigentlich nicht zu empfehlen!

//#define ROTARY_ENCODER_PRINT
Aktiviert Ausgaben in der Konsole, speziell zum Encoder. Dient der Fehlersuche und sollte nur zur Fehlersuche aktiviert sein. Die Ausgaben verbrauchen viel Programmspeicher.

Ich hoffe ich habe keine wichtigen Fragen offen gelassen.

Vielen DAnk für die supersschnelle Antwort
Kommt Zeit, kommt Gelegenheit . Dann werde ich das ausprobieren.

Hallo,

gibt es hierfür mittlerweile eine Lösung?
Ich hatte mir auch den PAM8403 bestellt und wollte diesen gerne als Ein-/Ausschalter für die Intenso10000 nutzen.
Wie sieht hierfür der nötige Anschluss des Schalters aus bzw. falls das nicht funktionieren sollte:
Ich hatte mal etwas gelesen, dass man auch die 3 Standardknöpfe als Einschaltknöpfe nehmen könnte (ohne einen zusätzlichen Öffner zu verbauen). Wie müsste ich hierfür die Intenso verbinden oder benötige ich noch extra Hardware?
Pololus funktionieren ja nicht mit der Inteso10000, wenn ich es richtig verstehe:.

Danke und Gruss
Tuevtl