Zusätzliche Schalter an A5-A7

Habe gerade einen PR im Original-Repo gefunden, der sich zumindest nach identischer Anforderung anhört …

Ich gebe hier folgendes zu bedenken:

Das geht nur mit Tricksereien. In deinem Fall würde sich der Wechsel auf AceButton anbieten. Dort sind mit wenigen Pins eine größere Menge an Buttons möglich. Einfach mal die Doku durchschauen. Der Sketch muss dafür natürlich massiv angepasst werden.

@stephan Das würde aber bedeuten, dass zumindest ein zusätzlicher Button an A5 angeschlossen werden kann. Oder?

Und dann den Code entsprechend ergänzen und zB ShortCuts zuordnen. Oder?

Danke!

Ja A5 geht. Und D5-D8 (siehe unten) ebenfalls. Im Fall von D7 drauf achten das der eigentlich für shutdown verwendet wird, kann man aber natürlich frei machen.

Die Stiftleiste oben rechts ist:

5V | GND | GND | DAC R | DAC L | Speaker + | Speaker -

Die Stiftleiste unten links ist:

A0 - A7 | GND | GND | D8 - D5

Danke für den Nachtrag, der TonUino ist seit Monaten fertig und ohne Problem im Betrieb. Muss noch mal den Vorstellungspost einstellen…

Und ich habe es dann auch genauso gemacht: A4 und A5 freigemacht für I2C und auf die D-Eingänge umgelegt. I2C in Software zu emulieren macht später doch nur Probleme an anderer Stelle… Ich bin Bastler, kein Informatiker :slight_smile:

Ich habe die Original Software um drei direkte Shortcut Taster erweitert.
Inklusive sperre bei auflegen der Tastensperre Modifier Karte.

Im Admin Menü sind es die Short Cuts 5-7

Verwendet werden die Pins D5-7
Shutdown Pin ist jetzt D8.

Ich habe auch ein #define dafür eingebaut, wie bei den Five Buttons.

Die Software ist ungetestet!
Bei Problemen bitte nochmal bescheid geben.

Hallo @marco-117
Du solltest auch in den mySettings die zusätzlichen shortcuts mit aufnehmen. Sonst werden diese beim Resetten des Tonuino nicht mit zurückgesetzt.

void resetSettings() {

  Serial.println(F("=== resetSettings()"));

  mySettings.cookie = cardCookie;

  mySettings.version = 2;

  mySettings.maxVolume = 25;

  mySettings.minVolume = 5;

  mySettings.initVolume = 15;

  mySettings.eq = 1;

  mySettings.locked = false;

  mySettings.standbyTimer = 0;

  mySettings.invertVolumeButtons = true;

  mySettings.shortCuts[0].folder = 0;

  mySettings.shortCuts[1].folder = 0;

  mySettings.shortCuts[2].folder = 0;

  mySettings.shortCuts[3].folder = 0;

 mySettings.shortCuts[4].folder = 0;

  mySettings.shortCuts[5].folder = 0;

  mySettings.shortCuts[6].folder = 0;

  mySettings.adminMenuLocked = 0;

  mySettings.adminMenuPin[0] = 1;

  mySettings.adminMenuPin[1] = 1;

  mySettings.adminMenuPin[2] = 1;

  mySettings.adminMenuPin[3] = 1;



  writeSettingsToFlash();

}
1 „Gefällt mir“

Danke, hab ich angepasst.

Großartig! Das teste ich in den nächsten Tagen gleich mal!

Vielen Dank!

Hast du auch für das Voicemenü die zusätzlichen Files im mp3-ordner generiert? Sonst kriegst du für die zusätzlichen Tasten keine Ansage beim Konfigurieren.

Ist ergänzt. (20 Zeichen)

Ich habe den Code gestern Abend mal eingespielt. Der erste Test war sehr gut :slight_smile:
Muss es aber nochmal weiter ansehen.

Danke schon einmal :slight_smile:

1 „Gefällt mir“

Irgendwie bereitet die SW bei mir noch Ärger.
Wenn der Tonuino einfach da liegt, fängt er plötzlich an die Shortcuts abzuspielen - oder fortzusetzen.

Bin mir auch nicht sicher ob es ein HW Thema ist (erkennt er den Schalter als gedrückt?!) oder warum er einfach los läuft.

Werde das Gerät jetzt nochmal reseten und zum Test die Original-Firmware einspielen.

Hört sich so an, als ob ein pin offen wäre. Das fängt ev. Störungen ein.

Was meinst Du mit „offen“?

Wenn ein Input nicht mit Pullupwiderstand deklariert ist, verhält sich der betreffende Eingang wie ein offener Eingang. D.h. wenn z.B. die Taste nicht gedrückt (also offen) ist, hat der Pin keinen vordefinierten Zustand. Störungen können dann zum Auslösen der Funktion führen, die für den Pin definiert ist.
Ein anderer Grund könnten auch ein Taster sein. Ich hatte z.B. bei meinen Arcade Buttons bei einem den Effekt, dass er schon bei ganz leichter Berührung, ohne zu drücken Kontakt gab. War aber nur bei einem der Fall. Vielleicht ist es bei dir ähnlich.

Ich habe keinen Widerstand angeschlossen.

Sorry für die Anwenderfrage: ich habe etwas gesucht zu Pull-up bzw Pull-down Widerständen.
Jetzt bin ich verwirrt wie ich es anschließen muss:
Aktuell habe ich einfach den Taster zwischen D5 und GND. Ist das falsch?
Ich finde immer Erklärungen mit einem zusätzlichen 5V Anschluss

Siehe zB https://youtu.be/XbX5TemR3bo

Danke für die Hilfe!

Das ist kein externer Widerstand, der ist in dem Fall im Arduino eingebaut. Nutzt du die Firmware von @marco-117? Ich hab das mal überflogen, ich sehe da nicht das @marco-117 das für die weiteren Pins entsprechend deklariert hat (gesetzt den Fall das der Code oben aktuell ist). Dies müsste noch nachgeholt werden.

Ja genau. Ich nutze die SW von @marco-117 unverändert im Fivebutton Modus.

Würde es bei der Nutzung von nur drei Buttons und dann Nutzung von A3 und A4 für die Shortcuttasten etwas ändern? Also verhalten sich die digitalen und Analogen PINs da anders bzw sind fehlertoleranter/-anfälliger?

Ich hab vergessen das die digitalen IOs einen Pull Up brauchen, das muss man im setup noch einfügen