Drehgeber mit Thorstens Platine

Hallo zusammen,

ich finde die Lösung mit einem ClickEncoder zur Lautstärke-Anpassung auch sehr reizvoll. Allerdings komme ich genauso wie Marco(MetalMonkey) nicht weiter.
Ich habe de Drehgeber wie folgt angeschlossen:
D5 = CLK
D6 = Data
A0 = SW (und den alten Pausebutton damit ersetzt)
GRD = GRD
+5V = +

Zusätzlich habe ich die Bibliothek „TimerOne“ installiert. Bei der Bibliothek „ClickEncoder“ bin ich auf das gleiche Problem gestoßen, wie Michel. Habe dann im Internet ein wenig gesucht und folgende Bibliothek (Link) manuell in das Verzeichnis „C:\Users\David\Documents\Arduino\libraries“ kopiert. War das richtig so? Habe ich die richtige „ClickEncoder“-Bib verwendet?

Beim Kompilieren der von Ullergr bereitgestellten tonuino.ino https://github.com/Ullergr/TonUINO_KY040/blob/master/Tonuino.ino erscheint dann aber folgende Fehlermeldung beim Kompilieren:

Hat jemand eine Idee, wie ich weiterkommen kann? Bin für jeden Hinweis dankbar :slight_smile:
Viele Grüße,
David

Die Lösung steht im Post von MetalMonkey. Sein Request wurde aber bisher nicht angenommen. Vielleicht kann er seinen Sketch direkt zum Download anbieten? Man kommt zwar per Copy & Paste auch so ran, aber wäre sicher schöner und einfacher.

1 „Gefällt mir“

Vielen Dank - per copy&paste aus MetalMonkeys GitHub funktioniert’s nun auch bei mir :slight_smile:

1 „Gefällt mir“

Erst einmal vielen Dank für den Code.
ich konnte ihn erfolgreich einbinden, mit folgender Bibliothek

mir ist auch aufgefallen, das der KY-040 Encoder recht empfindlich reagiert und bei jeder Stellung den Wert um 2-3 erhöht.
Das hat zur Folge, das aus den 30 möglichen Lautstärkestufen, plötzlich 10 werden.
Deshalb hab ich den Code im „void loop ()“ wie folgt angepsst:

 encPos += encoder.getValue();
    
    if ((encPos >= oldEncPos +2) || (encPos <= oldEncPos -2))  {
      if (encPos >= oldEncPos +2) {
        
        encPos = encPos -1;
        oldEncPos = encPos;
      }
      else if(encPos <= oldEncPos -2){
        
        encPos = encPos +1;
        oldEncPos = encPos;
      }      
      
      if (encPos > (mySettings.maxVolume)) {
        volume  = mySettings.maxVolume;
        encPos  = mySettings.maxVolume;

      }
      else if (encPos < (mySettings.minVolume)) {
        volume  = mySettings.minVolume;
        encPos  = mySettings.minVolume;

      }
      else   {
        
        volume = encPos;

      }
      mp3.setVolume(volume);
      #ifdef DEBUG
      Serial.println(volume);
      #endif
    }

Jetzt bekommt man so gut wie mit jeder Stellung am Encoder eine Lautstärke Stufenänderung hin.

Ich such mir gerade einen Wolf und finde keinen passenden Drehknkopf für die D Achse des KY-040
Hat mir jemand eine Quelle für einen schönen? Die meisten sind für gerädelte Achsen.

Naja bei Reichelt unter Zubehör für Poti´s da gibt es doch einiges…

Edit: Der hier ist doch ganz schick…

1 „Gefällt mir“

Manchmal sieht man den Wald vor lauter Bäumen nicht.
Danke!
Ich suche eher nach etwas schwarzem unauffälligem für meinen Pocket TonUINO

Edit: hab einen gefunden der auch für eine abgeflachte Achse spezifiziert ist.
Dieser hier wird es wahrscheinlich

:+1: ja kenne ich gut :slight_smile:

Hallo Zusammen,
Ich bin gerade dabei meinen Tonuino in einen alten Amazon Echo einzubauen. Dieser hat auf der Oberseite einen Drehkranz für die Lautstärkeregelung. Dieser läuft über einen Drehimpulsgeber/ Drehgeber welchen ich gern am Tonuino nutzen möchte. Leider komme ich an dieser Stelle nicht weiter. Wie genau bekomme ich denn den Sketch für den Drehgeber auf den Nano? Es kommen beim kompilieren immer Fehler und auch mit dem Hinweis von MetalMonkey komme ich nicht so recht klar. Gibt es denn keinen fertigen funktionsfähigen Sketch zu dem Thema?
Hoffe auf eure Hilfe :slight_smile:

Ich hab die Knöpfe bestellt und sie passen sehr gut. Mechanisch als auch optisch.

1 „Gefällt mir“

Kannst du die Fehler hier mal posten?

So sieht mein Fehlerbericht in der Arduino IDE aus.
vllt. kannst du damit etwas anfangen :sweat_smile:

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino: In function ‚void setup()‘:

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:417:27: warning: invalid conversion from ‚int‘ to ‚DfMp3_Eq‘ [-fpermissive]

mp3.setEq(mySettings.eq - 1);

     ~~~~~~~~~~~~~~^~~

In file included from C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:1:0:

C:\Users\Daniel Strehl\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:209:10: note: initializing argument 1 of ‚void DFMiniMp3<T_SERIAL_METHOD, T_NOTIFICATION_METHOD>::setEq(DfMp3_Eq) [with T_SERIAL_METHOD = SoftwareSerial; T_NOTIFICATION_METHOD = Mp3Notify]‘

void setEq(DfMp3_Eq eq)

  ^~~~~

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino: In function ‚void adminMenu()‘:

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:759:29: warning: invalid conversion from ‚int‘ to ‚DfMp3_Eq‘ [-fpermissive]

mp3.setEq(mySettings.eq - 1);

       ~~~~~~~~~~~~~~^~~

In file included from C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:1:0:

C:\Users\Daniel Strehl\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:209:10: note: initializing argument 1 of ‚void DFMiniMp3<T_SERIAL_METHOD, T_NOTIFICATION_METHOD>::setEq(DfMp3_Eq) [with T_SERIAL_METHOD = SoftwareSerial; T_NOTIFICATION_METHOD = Mp3Notify]‘

void setEq(DfMp3_Eq eq)

  ^~~~~

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino: In function ‚uint8_t voiceMenu(int, int, int, bool, int, int, bool)‘:

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:833:120: warning: default argument given for parameter 4 of ‚uint8_t voiceMenu(int, int, int, bool, int, int, bool)‘ [-fpermissive]

           bool preview = false, int previewFromFolder = 0, int defaultValue = 0, bool exitWithLongPress = false) {

                                                                                                                ^

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:65:9: note: previous specification in ‚uint8_t voiceMenu(int, int, int, bool, int, int, bool)‘ here

uint8_t voiceMenu(int numberOfOptions, int startMessage, int messageOffset,

 ^~~~~~~~~

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:833:120: warning: default argument given for parameter 5 of ‚uint8_t voiceMenu(int, int, int, bool, int, int, bool)‘ [-fpermissive]

           bool preview = false, int previewFromFolder = 0, int defaultValue = 0, bool exitWithLongPress = false) {

                                                                                                                ^

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:65:9: note: previous specification in ‚uint8_t voiceMenu(int, int, int, bool, int, int, bool)‘ here

uint8_t voiceMenu(int numberOfOptions, int startMessage, int messageOffset,

 ^~~~~~~~~

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:833:120: warning: default argument given for parameter 6 of ‚uint8_t voiceMenu(int, int, int, bool, int, int, bool)‘ [-fpermissive]

           bool preview = false, int previewFromFolder = 0, int defaultValue = 0, bool exitWithLongPress = false) {

                                                                                                                ^

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:65:9: note: previous specification in ‚uint8_t voiceMenu(int, int, int, bool, int, int, bool)‘ here

uint8_t voiceMenu(int numberOfOptions, int startMessage, int messageOffset,

 ^~~~~~~~~

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:833:120: warning: default argument given for parameter 7 of ‚uint8_t voiceMenu(int, int, int, bool, int, int, bool)‘ [-fpermissive]

           bool preview = false, int previewFromFolder = 0, int defaultValue = 0, bool exitWithLongPress = false) {

                                                                                                                ^

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:65:9: note: previous specification in ‚uint8_t voiceMenu(int, int, int, bool, int, int, bool)‘ here

uint8_t voiceMenu(int numberOfOptions, int startMessage, int messageOffset,

 ^~~~~~~~~

In file included from C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:1:0:

C:\Users\Daniel Strehl\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h: In instantiation of ‚uint16_t DFMiniMp3<T_SERIAL_METHOD, T_NOTIFICATION_METHOD>::listenForReply(uint8_t) [with T_SERIAL_METHOD = SoftwareSerial; T_NOTIFICATION_METHOD = Mp3Notify; uint16_t = unsigned int; uint8_t = unsigned char]‘:

C:\Users\Daniel Strehl\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:98:27: required from ‚void DFMiniMp3<T_SERIAL_METHOD, T_NOTIFICATION_METHOD>::loop() [with T_SERIAL_METHOD = SoftwareSerial; T_NOTIFICATION_METHOD = Mp3Notify]‘

C:\Users\Daniel Strehl\Desktop\TonUINO_KY040-master\TonUINO_KY040-master\Tonuino\Tonuino.ino:372:14: required from here

C:\Users\Daniel Strehl\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:456:63: error: ‚OnUsbOnline‘ is not a member of ‚Mp3Notify‘

                     T_NOTIFICATION_METHOD::OnUsbOnline(replyArg);

                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~

C:\Users\Daniel Strehl\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:467:65: error: ‚OnUsbInserted‘ is not a member of ‚Mp3Notify‘

                     T_NOTIFICATION_METHOD::OnUsbInserted(replyArg);

                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~

C:\Users\Daniel Strehl\Documents\Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:478:64: error: ‚OnUsbRemoved‘ is not a member of ‚Mp3Notify‘

                     T_NOTIFICATION_METHOD::OnUsbRemoved(replyArg);

                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~

exit status 1
Fehler beim Kompilieren für das Board Arduino Nano.

Und bitte nutze beim Posten von Fehlern usw den </> Knopf und nicht die Zitat Funktion. Danke.

Hallo,
wie schafft es Ihr dennoch ins Admin-Menü zu kommen? Habe mir die Code-Fragmente von Euch zusammengeklaut, aber wenn ich es recht sehe, wurde die Funktion des „3-Tasten-Klicks“ fürs Adminmenü nicht verändert, oder?
Ich kann nun zwar über den KY_040 die Lautstärke steuern, aber dafür nicht mehr ins Adminmenü :frowning:

Du kannst eine Adminkarte erstellen.
Der Gleiche Ablauf wie bei einer Normalen Karte.

Aber ich habe sowohl drei Taster als auch den Drehgeber und ich komme über die Taster dennoch ins Menü.

Hallo! Ich versuche auch verzweifelt, einen Drehgeber zum Laufen zu bekommen. Leider kompiliert bei mir keines der hier genannten Skripte. Die original-DEV Version ohne Drehgeber geht, alle Bibliotheken sind aktuell. Händisches copy/paste aus „Metalmonkeys“ Repository gibt ebenfalls Fehler, die auf ein Bibliotheken-Konflikt (?) hindeuten

"Arduino\libraries\DFPlayer_Mini_Mp3_by_Makuna\src/DFMiniMp3.h:529:68: error: 'OnPlaySourceInserted' is not a member of 'Mp3Notify'
                         T_NOTIFICATION_METHOD::OnPlaySourceInserted(static_cast<DfMp3_PlaySources>(replyArg));
"

Und ähnliches. Was mache ich falsch? Bin für jeden Hinweis dankbar!

LG, Stefan

Das wird wohl daran liegen:

Hallo Manu! Danke für die schnelle Antwort! Ich habe sogar v1.0.7 installiert, und auch mit 1.0.6 versucht zu kompilieren. Was genau bedeutet dann also „An der DEV sind ein paar Änderungen nötig…“? Was genau muss ich da ändern? Danke schon mal!

Du schreibst doch:

An der DEV muss ergo gar nichts verändert werden. Dies ist bereits geschehen! Für Forks können wir hier nichts sagen. Dass muss der Author selber erledigen.

Wenn du eine Fork einsetzt muss dieser demnach angepasst werden! Die nötigen Änderungen gehen aus dem verlinkten Beitrag hervor. Alternativ kannst du die Library auch auf eine Version < 1.0.6 downgraden, dann sollte der Fork ggf auch wieder laufen (dann aber die DEV nicht mehr).

PS: Scrollt doch hier mal nach oben, der selbe Hinweis (von @Manuel) wiederholt sich hier immer wieder…

Danke! Ich habe es jetzt mit der Version 1.0.2. vom DFPlayer geschafft! 1.0.7; - 1.0.4 ging nicht.