Button doppelt belegen & Änderungen uploaden

Hey zusammen,

ich bin gerade dabei neu bzw anders zu belegen und bekomme es leider nicht hin.
Ich habe eine Box (A29 von Aliexpress) die außen vier Tasten hat. Play/Pause, Lauter, Leiser & An/Aus.
Diese würde ich auch gerne so nutzen. Lauter und Leiser würde ich gerne zusätzlich bei langem Druck mit dem vorherigen bzw. nächsten Lied belegen. Ebenfalls soll der An/Aus Taster mit diesen Funktionen belegt werden. Am besten dort mit langem Tastendruck. Angehen soll die Box aber über alle Tasten.

Ich weiß leider nicht wie ich es im Code eintragen soll damit es funktioniert.

Es handelt sich um das Paket von Thorsten mit dem Lolin32 D32 pro sdmmc.

Ebenfalls funktioniert der Upload mit Änderungen nicht. Bekomme dann immer eine Fehlermeldung. Erst ein Erease mit anschließendem neuen Upload schafft Abhilfe. Wie kann ich Änderungen direkt übertragen? Kann ich ggfls. meine SSID mit Passwort schon irgendwo hinterlegen damit ich diesen Prozess nicht immer neu machen muss beim testen?

Vielen Dank und beste Grüße

Aaaalso…
Die Konfiguration, die zu ändern möchtest, geht hier los: ESPuino/settings.h at 1501d8777e7261fd580b7fe5b478ebca475c5b52 · biologist79/ESPuino · GitHub
Da siehst du die Aktionen Button0 bis Button5 und das in Short bzw. Long. Darüber hinaus auch noch Tastenkombinationen.

Dabei gilt:
0: NEXT_BUTTON
1: PREVIOUS_BUTTON
2: PAUSEPLAY_BUTTON
3: ROTARYENCODER_BUTTON
4: BUTTON_4
5: BUTTON_5

Wichtig sind dabei die Nummern 0 bis 5, damit du weißt, um welchen Button es geht.
Die Aktionen, die du zuweisen kannst, findest du hier: ESPuino/values.h at 1501d8777e7261fd580b7fe5b478ebca475c5b52 · biologist79/ESPuino · GitHub
Zuweisen kannst du alle Aktionen, die zwischen CMD_NOTHING und CMD_SEEK_BACKWARDS liegen.

Das musst du etwas näher ausführen. Was passiert, wenn du das ein zweites Mal startest? Also ein Erase ist eigentlich nicht notwendig. Also es kann zu Situationen kommen, in denen das notwendig ist, aber das sollte eher die Ausnahme sein.

Wie gesagt: Normalerweise ist ein erase nicht notwendig. Ohne dieses brauchst du das nicht.

1 „Gefällt mir“

Habe die Tastenänderungen immer in der settings_lolin_… vorgenommen. Da lag der Fehler. Es in der settings.h zu ändern ist mir irgendwie nicht eingefallen :exploding_head:

Wegen dem Upload habe ich jetzt eine neue SD-Karte genommen. Damit funktioniert es nun.

Was gestern Abend nicht geklappt hat war, mit der PLAYPAUSE Taste aus dem DeepSleep aufzuwecken.
#define WAKEUP_BUTTON PAUSEPLAY_BUTTON
Da muss ich mal noch auf die Suche gehen.

Viele Grüße

Du hast ja die Variante mit Port-Expander. Als WAKEUP_BUTTON musst du dort die 36 stehen lassen, da das der Interrupt-Pin des Port-Expanders ist. Alles, was am Port-Expander als Taster angeschlossen ist, kann und wird den ESP32 aufwecken. Das kannst du (derzeit?) nicht ändern. Das rührt daher, dass alle Eingänge des Port-Expander per Default Input sind. Und alle Input-Kanäle des PCA9555 werfen Interrupts. Also man könnte das programmatisch lösen, indem man vor dem Deepsleep alle Kanäle, die eben nicht aufwecken sollen, auf Output konfiguriert und beim Start des ESP32 das wieder rückgängig macht. Aber ich habe so meine Bedenken irgendwie, dass alles schwer überblickbar und kompliziert wird.

Da würden sich deine Bedanken auch bestätigen. Das würde ich definitiv nicht hinbekommen. :sweat_smile:

Werde später mal den WAKEUP_BUTTON auf 36 stellen. Danke für den Hinweis :slight_smile: