Buttons um Ordner direkt abzuspielen

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?

Keine Taste -> 567
Keine Taste -> 568
Keine Taste -> 570
Taste 1 -> 190
Taste 1 -> 189
Taste 1 -> 187
Taste 2 -> 308
Taste 2 -> 307
Taste 2 -> 304
Taste 3 -> 395
Taste 3 -> 395
Taste 3 -> 395
Taste 4 -> 464
Taste 4 -> 469
Taste 4 -> 465
Taste 5 -> 521
Taste 5 -> 521
Taste 5 -> 521
Taste 6 -> 607
Taste 6 -> 605
Taste 6 -> 605
Taste 7 -> 651
Taste 7 -> 652
Taste 7 -> 652
Taste 8 -> 712
Taste 8 -> 711
Taste 8 -> 709
Taste 9-> 783
Taste 9 -> 786
Taste 9 -> 785
Taste 10 -> 886
Taste 10 -> 882
Taste 10 -> 885
Keine Taste -> 567
Keine Taste -> 567
Keine Taste -> 569

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 :yawning_face:

Ist doch gut, oder?

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. :slight_smile:
Aber wo greife ich dann das Signal ab? Hmmm…

Danke & Gute Nacht

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:

11:25:34.543 -> 1023
11:25:35.551 -> 1023
11:25:36.561 -> 134
11:25:37.549 -> 134
11:25:38.567 -> 242
11:25:39.581 -> 242
11:25:40.565 -> 341
11:25:41.585 -> 341
11:25:42.565 -> 434
11:25:43.584 -> 434
11:25:44.574 -> 521
11:25:45.594 -> 521
11:25:46.602 -> 605
11:25:47.587 -> 605
11:25:48.607 -> 686
11:25:49.591 -> 686
11:25:50.608 -> 766
11:25:51.593 -> 767
11:25:52.604 -> 848
11:25:53.591 -> 848
11:25:54.608 -> 932
11:25:55.622 -> 932
11:25:56.609 -> 1023
11:25:57.623 -> 1023
1 Like

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.

Ich bin mir gerade nicht sicher was das Programm bei Leerlauf erwartet.
Mein Drehschalter hat keinen 0 Wert.
Der steht immer irgendwo.

Das muss ich eventuell noch einbauen.
Eine Tastatur habe ich noch nie getestet und von dir die erste Rückmeldung überhaupt dazu bekommen.

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“.

1 Like

Klar, ich kann ja warten und trotzdem schon Mal die festen Werte testen :slight_smile:

16:33:14.109 -> AnaIn active Pos 3
16:33:14.109 -> AnaIn Pos not configured.
16:33:15.659 -> AnaIn active Pos 4
16:33:15.659 -> AnaIn Pos not configured.
16:33:16.643 -> AnaIn active Pos 5
16:33:16.643 -> AnaIn Pos not configured.
16:33:18.161 -> AnaIn active Pos 6
16:33:18.161 -> AnaIn Pos not configured.
16:33:22.290 -> AnaIn active Pos 7
16:33:22.290 -> AnaIn Pos not configured.
16:33:23.202 -> AnaIn active Pos 8
16:33:23.202 -> AnaIn Pos not configured.
16:33:24.047 -> AnaIn active Pos 9
16:33:24.047 -> AnaIn Pos not configured.
16:33:25.702 -> AnaIn active Pos 10
16:33:25.702 -> AnaIn Pos not configured.
16:33:27.148 -> AnaIn active Pos 11
16:33:27.148 -> set modifier: 1
16:33:30.454 -> SleepTimer minutes: 1
16:33:30.454 -> write settings to flash at adress 792
16:33:35.563 -> AnaIn active Pos 1
16:33:35.563 -> AnaIn Pos not configured.

OK, scheint besser zu funktionieren. Aber was ist das mit dem set modifier: 1 ?

In meinem Fork hab ich versehentlich den ersten Shortcut default mäßig als Modifier 1 gesetzt.
Den hast du miz deinem Analog in button aktiviert.

Ansonsten sieht das gut aus.
Passen den die Nummerierung der Positionen zu deinen Buttons?

Nein, leider noch nicht. Aber das schaffe ich, denke ich.
Allerdings kann ich jeden Taster nur einmal drücken. Ist das so gewollt?

Nein ist nicht gewollt, du solltest sie immer wieder drücken können.

  mySettings.anaInSlots[1].folder = 1;
  mySettings.anaInSlots[1].mode = 2;
  mySettings.anaInSlots[1].special3 = 1;

Ist das der Teil der raus muss um den Modifier 1 raus zu nehmen?

1 Like

Genau, danach muss der EEPROM resetet werden.

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.

16:52:29.060 -> Fork by Marco Schulz DEVELOP
16:52:29.060 -> Version 2
16:52:29.060 -> Max Vol 25
16:52:29.060 -> Min Vol 1
16:52:29.060 -> Init Vol 8
16:52:29.060 -> EQ 1
16:52:29.060 -> Locked 0
16:52:29.060 -> Sleep Timer 0
16:52:29.060 -> Inverted Buttons 1
16:52:29.060 -> Admin Menu locked 0
16:52:29.060 -> Admin Menu Pin 1111
16:52:29.095 -> Saved Modifier 0
16:52:29.095 -> set standby timer
16:52:29.162 -> milis: 0
16:52:29.229 -> Firmware Version: 0x92 = v2.0
16:52:29.229 -> === mfrc522-> RxGain_avg === 
16:52:33.880 -> volume: 14

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 :slight_smile:

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:

17:00:17.818 -> volume: 14
17:00:17.886 -> volume: 15
17:00:17.886 -> AnaIn active Pos 6
17:00:17.886 -> AnaIn Pos not configured.
17:00:17.919 -> volume: 16
17:00:18.090 -> volume: 15
17:00:18.156 -> volume: 14
17:00:18.224 -> volume: 13
17:00:18.224 -> AnaIn active Pos 5
17:00:18.224 -> AnaIn Pos not configured.
17:00:18.259 -> volume: 12
17:00:18.326 -> volume: 11
17:00:18.700 -> volume: 12
17:00:18.767 -> volume: 13
17:00:18.903 -> volume: 12
17:00:18.971 -> volume: 11
17:00:19.038 -> volume: 10
17:00:19.106 -> volume: 11
17:00:19.174 -> volume: 12
17:00:19.174 -> AnaIn active Pos 6
17:00:19.174 -> AnaIn Pos not configured.
17:00:19.240 -> volume: 13
17:00:19.307 -> volume: 12
17:00:19.373 -> volume: 11
17:00:19.440 -> volume: 10

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.

Ich spoiler hier mal was :wink:

5 Like

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.