Hallo zusammen,
da Samoth´s Lösung leider für mich nichts ist und ich Thorstens Platine verwenden will, habe ich für mich folgende Lösung gefunden:
Der Drehgeber (KY-040) ist auf DI5 und DI6 (CLK und Data) angeschlossen.
Zusätzlich müssen noch die Biblotheken “ClickEncoder” und “TimerOne” installiert werden.
Alle 1000ms wird der Status des Drehgebers ausgewertet. Der Wert zählt ohne Prellen sauber hoch bzw. runter. Start/Stopp wird über den integrierten Taster des Drehgebers gemacht.
Die Shortcuts funktionieren auch (gestestet habe ich nur den Start und Vor)
Den Sketch hab ich bei Github hochgeladen.
Gruß Ullergr
Edit: Ich habe mir gerade überlegt, alle 1000ms kann es gar nicht sein. Das wären ja alle Sekunde.
Den Drehgeber kann man schön flott drehen und er zählt ohne Probleme mit. Bei einen sehr starken ruck fehlen ein paar Signale wird aber trotztem lauter oder leider. Das finde ich aber gut. Ich will nicht dass meine Kinder von „Min nach Max“ in einem Ruck drehen können.
Danke, ich werde mit das mal ansehen. Ich hatte schon abgeschrieben, die Platine verwenden zu können, da ich unbedingt einen Drehregler einbauen möchte. Wenn beides zusammen geht, ist es ja umso besser.
in welcher Zeile finde den Code, welcher das Verhalten beim Press auf den Impulsgeber regelt? Du hattest was von Start/Stopp geschrieben. Im Code finde ich nur die neue Reglung der Lautstärke 586-608.
In einem Kommentar erwähnst du Pololu und Mosfets. Sind außer dem Drehgeber und dem Standardtonuino noch weitere Bauteile nötig?
Die großflächigen Anpassungen machen ein diff leider schwierig. Reichen die Codestellen bzgl. Clickencoder, timer1 und die timerIsr()? Du hast einige zusätzliche delays im Code verteilt, sind diese ebenfalls nötig?
Kann es sein, das du beim Konstruktor vom Encoder den Button-Pin vergessen hast, oder ist STEPS irritierend benannt? Wenn ich dich Doku richtig gelesen habe, ist Parameter 3 der Button und Parameter 4 sind die Steps.
Hallo Michel,
den Drucktaster des Encoders anstelle des “orginalen” Tasters anschließen.
Die Bibliothek Clickencoder könnte es aber auch. Aber da es ja schon im orginalen vorgesehen ist habe ich dieses genommen.
Gruß Uli
Hallo derda17,
man benötigt keine anderen Bauteile nur den Encoder selbst. Es prellt nichts.
Hab ich was von Pololu und Mosfet geschrieben? Kann mich grad nicht erinnern. Komme aber gar nicht richtig dazu mich um das ganze zu kümmern, da im privaten Umfeld sehr viel los ist. Das ganze geht nebenher. Zudem bin ich nicht der Held im Programmieren.
Ich habe das Beispiel von Clickencoder genommen, den Taster rausgelöscht und so angepasst dass es funktioniert. Es gibt bestimmt noch Sachen die man verbessern bzw. kürzen kann.
Zusätzliche Delays hab ich jetzt nicht reingemacht.
Falls du was optimieren kannst /willst, fühle dich frei.
Gruß Uli
danke für die schnelle Information.
Nochmal kurz zu deiner Belegung.
Ist das so richtig?
Platine = KY040
D5 = CLK
D6 = Data
A0 = SW (und den alten Pausebutton damit ersetzt)
GRD = GRD
+5V = +
Viele Grüße und auf das der Stress bei dir weniger wird. (-:
Ich muss zu meiner Schande gestehen, dass ich deine Änderungen mit dem Tonuino-Master verglichen habe, nicht mit dem DEV-Branch im Tonuino-git. Da sind die Änderungen auch wesentlich übersichtlicher und eindeutiger.
Wie man sieht hat das nicht funktioniert … Vermutlich passt die Version der Bibliothek DFPlayer_Mini_Mp3_by_Makuna nicht mehr.
So schnell gebe ich nicht auf. Ich habe den Code also mit der aktuellen „DEV“ Branch ge"merged", gebaut, auf meinem Uno getestet und dir das als Pull Request eingestellt:
Danke nochmal für die Idee den ClickEncoder zu nehmen, der hat nicht die Interupt Probleme wie der RotationEncoder
Könnte von euch nochmal jemand übersichtlich schreiben, wie ich das Poti genau in Thorsten Platine integrieren kann, und welche Codezeilen ich ergänzen muss?
Danke
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?
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.
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:
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.