Gast
#6309084
Moin, Ich habe mir einen kleinen MP3-Player auf Arduino-Basis gebaut. Also Mega256 (original, kein Clone) + Adafruit Music Maker Shield + 15W Verstärker mit TPA3110D2 im Mono-Betrieb. (https://media.digikey.com/pdf/Data%20Sheets/Projects%20Unlimited%20PDFs/AMP2X15_DS.pdf), dazu eine 3x4 Matrixtastatur. Die Software ist ziemlich stumpf aus Bibliotheken zusammengeworfen: Keypad.h, https://playground.arduino.cc/Code/Keypad/ und Adafruit_VS1053.h Solange ich den kleinen onboard 3W-Verstärker des Music Maker Shields nutze, läuft alles glatt und ich kann über die Matrixtastatur einwandfrei Titel auswählen und abspielen. Verbinde ich nun aber das Verstärkermodul mit dem Rest, kommt es zu Fehlern beim einlesen der Matrixtastatur. Es werden wild Tasten als gedrückt erkannt bis der Controller sich aufhängt bzw. der Watchdog zuschlägt. Das Problem tritt sogar auf, wenn das 7-Adrige Kabel (ca. 30cm) zur Tastatur nur am Board angeschlossen ist, nicht an der Tastatur. Nachdem ich den Fehler auf die Kombination aus Verstärker und Kabel eingegrenzt hatte, habe ich das Tastaturkabel gegen ein geschirmtes ausgetauscht. Damit ließ sich reproduzierbar feststellen: Schirmung einseitig auf GND gelegt: alles gut. Schirmung in der Luft: Fehler tritt auf. Wie das immer so ist, ist der Fehler wieder da, nachdem das ganze final im Gehäuse verbaut ist. Einziger Unterschied zum letzten funktionierenden Aufbau ist ein jetzt längeres Kabel zum Lautsprecher... Das ganze ist eigentlich relativ ordentlich aufgebaut, mit gefräster Platine, Stiftleisten und IDC-Steckern als Mini-Shield auf dem Arduino aufgesteckt. Die Tastatur ist ohne weitere Bauteile einfach mit 7 Portpins des ATmega verbunden. Leiterbahnlänge Arduino zur Stiftleiste zwischen 27 und 2.54mm. 5V Schaltregler Traco TSR-1 für Arduino und Music Maker Shield und der Verstärker werden gemeinsam aus einer 12V Batterie versorgt, haben also gemeinsamen GND. Versorgung des Arduino/Music Maker per USB ändert nichts. Kann sich da jemand einen Reim drauf machen? Was kann ich Hard- und/ oder Softwaremäßig verbessern, um das Problem zu beheben? Meine erste Idee wäre, mal jedem Tastatur-Pin einen kleinen Kerko 10-100nF gegen GND zu spendieren!? Ich frage die Tastatur derzeit in der Hauptschleife mit char key = keypad.getKey(); ab, solange keine Taste gedrückt wird also ziemlich oft. Gibt es evtl. softwareseitig Ansätze um das etwas zu entschärfen? Bin erstmal für jeden Hinweis dankbar ;) Viel Grüße Felix Wie das immer so ist,