Ich habe für jede Taste die analogen Werte drei Mal ausgelesen. Kannst Du daraus den besten Wert für die Toleranz ermitteln? Oder muss ich an den Widerständen noch was ändern?
Die Toleranz liegt hier bei weniger als einem Prozent.
Jetzt sehe ich auch eventuell das Problem.
Im Leerlauf bist du auf 50% der Referenzspannung. Das ist bei mir so nicht vorgesehen, da muss ich mal schauen was man da machen kann.
Aber nicht mehr heute, auch mein Bett ruft
Ja, so ist der Schaltplan, hat mich auch gewundert. Bei Dir ist es nur eine Reihe? Kann ich ja schnell umlöten… bevor Du dir einen Kopf machst.
Aber wo greife ich dann das Signal ab? Hmmm…
Habe mir deinen Schaltplan vom Drehschalter angesehen und meine Taster analog dazu verkabelt. Jetzt müsste es eigentlich funktionieren… die Zahlen sprechen für sich:
Klappt leider nicht wie gewünscht. Habe jetzt die DEBUG Ausgabe für den Analog_Input gefunden und aktiviert. Auch ohne das ich irgend einen Taster drücke, erkennt er wahllos neue Positionen und spielt irgendwas ab… ich warte jetzt was Du dazu sagst.
Ah, ok. Na dann…
1023 bzw. 1024 dürfte dann bei mir der Null Wert sein. Vielleicht ist das dann schon die Lösung?
Ansonsten versuche ich vielleicht nächste Woche die ermittelten Werte fest im Sketch einzubauen - so wie bei der vier Tasten Lösung in einem anderen Projekt. Aber keine Ahnung ob ich das schaffe.
Was mir sonst noch aufgefallen ist:
man kann den SPEAKER_SWITCH nicht aus kommentieren, kompilieren schlägt dann fehl.
Eine Lösung für feste werte hab ich eingebaut, ist aber ungetestet #define ROBOTDYN_3X4, da ist im Code eine switch case Anwendung mit festen Werten enthalten.
Aber ist ungetestet.
Wenn du noch ein wenig Geduld hast dann kann ich bald eine variable Lösung präsentieren, ganz ohen „Rumprovrammieren“.
OK, ich glaube ich muss meinen Hardware Aufbau noch einmal prüfen. Aber von der Software her scheint es ganz gut zu funktionieren. Nach dem EEPROM Reset hat es auch endlich mit der Lautstärke die ich im Sketch eingegeben habe, geklappt. Aber dann doch nicht so richtig.
Ich habe 8 eingetragen, die Lautstärke springt aber nach dem Start sofort auf 14. Irgend eine Idee warum? Nachts wenn die Kids schlafen ist mir das ein bisschen zu laut zum testen
Die Tasten 1 bis 9 funktionieren jetzt. Warum die 10 nicht will, erschließt sich mir noch nicht. Aber das klappt sicher auch noch:
16:53:32.605 -> AnaIn active Pos 1
16:53:32.605 -> AnaIn Pos not configured.
16:53:35.559 -> AnaIn active Pos 2
16:53:35.559 -> AnaIn Pos not configured.
16:53:36.512 -> AnaIn active Pos 3
16:53:36.512 -> AnaIn Pos not configured.
16:53:38.005 -> AnaIn active Pos 4
16:53:38.005 -> AnaIn Pos not configured.
16:53:39.401 -> AnaIn active Pos 5
16:53:39.401 -> AnaIn Pos not configured.
16:53:41.298 -> AnaIn active Pos 6
16:53:41.298 -> AnaIn Pos not configured.
16:53:42.900 -> AnaIn active Pos 7
16:53:42.900 -> AnaIn Pos not configured.
16:53:43.920 -> AnaIn active Pos 8
16:53:43.920 -> AnaIn Pos not configured.
16:53:45.109 -> AnaIn active Pos 9
16:53:45.109 -> AnaIn Pos not configured.
16:53:46.941 -> AnaIn active Pos 255
16:53:57.054 -> packet size error
16:54:02.437 -> file mismatch error
16:54:07.089 -> AnaIn active Pos 1
16:54:07.089 -> AnaIn Pos not configured.
16:54:08.102 -> AnaIn active Pos 2
16:54:08.102 -> AnaIn Pos not configured.
16:54:08.950 -> AnaIn active Pos 3
16:54:08.950 -> AnaIn Pos not configured.
16:54:09.829 -> AnaIn active Pos 4
16:54:09.829 -> AnaIn Pos not configured.
16:54:10.674 -> AnaIn active Pos 5
16:54:10.674 -> AnaIn Pos not configured.
16:54:11.757 -> AnaIn active Pos 6
16:54:11.757 -> AnaIn Pos not configured.
16:54:12.503 -> AnaIn active Pos 7
16:54:12.503 -> AnaIn Pos not configured.
16:54:13.727 -> AnaIn active Pos 8
16:54:13.727 -> AnaIn Pos not configured.
16:54:15.316 -> AnaIn active Pos 9
16:54:15.316 -> AnaIn Pos not configured.
16:54:19.601 -> AnaIn active Pos 255
16:54:25.055 -> file mismatch error
Was mich allerdings echt stört… wenn ich am Drehregler rumspiele und die Tasten in Ruhe lasse, passiert folgendes:
Hab ich jetzt ein Problem mit der Abschirmung oder so was? Ist es besser den Drehgeber über D8 zu speisen oder lieber direkt an die +5V zu gehen?
–
Direkt an +5V scheint etwas besser zu funktionieren. Trotzdem gibt es immer wieder erkannte Tastendrücke die es gar nicht gab. Werde jetzt alles ins Gehäuse einbauen und ein bisschen was mit Alufolie abschirmen und schauen ob es was bringt. Der Analoge Eingang scheint ziemlich „hibbelig“ zu sein.
Ich musste die Werte etwas großzügiger auslegen, jetzt klappt es mit den Tasten 1 bis 10. Vor allem bei der 10 passt der ermittelte Wert nicht mit dem den ich jetzt nutze. Aber gut, so ist das manchmal.
Hast du einen Rotary Encoder für die Lautstärke? Oder was nutzt du dafür?
Abschirmen muss man hier denke ich nichts.
Das hat sicher andere Ursachen, du könntest auch noch das #define ANALOG_INPUT_TRIGGER_TIME
erhöhen, auf vlt. 200.
Das ist die Zeit in Millisekunden, die man den Taster gedrückt halten muss, dass er angenommen wird. Das könnte die Zucker entfernen.
Ja genau, so einen Drehimpulsgeber oder wie das heißt. Keine Ahnung warum der Einfluss auf den Analog Input hat. An dem Wert hab ich schon rumgespielt, aber mit 200 Millisekunden werde ich es noch Mal probieren. Ansonsten wird dazu geraten, die anderen analogen Inputs auf Masse zu ziehen, aber der A7 muss ja für den Zufallsgenerator offen bleiben… ansonsten ggf. einen Tiefpassfilter? Wüsste jetzt aber nicht wie ich den dimensionieren sollte. Dann lieber noch was an der Software rumprobieren. Ich melde mich mit dem Ergebnis. Danke!
Das ist so eine Sache mit den defines und den Optionen Software zu und abzuschalten.
Aber die Kombination Drehimpulsgeber + Drehscgalter nutze ich in meinem Testaufbau ohne Probleme.
Eventuell sind das voneinander unabhängige Probleme.