Kapazitiver Touch Schalter statt physischer Schalter

Um möglichst wenige mechanische Teile am Gehäuse zu haben, habe ich vor, die u.a. kapazitiven Schalter einzusetzen:
Touchschalter
Wenn diese direkt mit z.b. Button 1 verbunden werden, bedeutet das im Ergebnis „langer Tastendruck“ . Daher habe ich das Signal mittel CD4049 invertiert und prinzipiel funktioniert das jetzt wie ein kuzer Tatsendruck. Schaltung:
ESPuino Touch CD4049 (2022mar03).pdf (210,2 KB)
Hurra … aber nur bis ich den ESPuino mittels Drehcoder-Schalter in Deepsleep schicke. Den erreicht er letztlich nie, da der ESPuino zwar runter fährt, aber danach sofort wieder neu startet. Und hier bin ich mit meinem Latein am Ende, wie ich diese Problem lösen könnte.
Daher meine Anfrage. Jede Idee ist willkommen.
LG Hansjörg

Was ist denn deine Definition von WAKEUP_BUTTON?

Ich würde mal versuchen einen PullUp-Widerstand (10k) dranzuhängen.

Sind das diese TTP223 Sensoren? Wenn ja, wie sind die denn aktuell „kodiert“ , also sind die Lötbrücken A / B verbunden?

1 „Gefällt mir“

Das ist die Standardeinstellung, von mir nichts geändert.

BlueMail for Android herunterladen

Das geht über einen Port-Expander. Also der Interrupt wird von einem Port-Expander geworfen, da sich die Zustand eines Inputs ändert.

hängt der Touch an Dauer 3,3V (ebenso der Inverter)?

Eigentlich sollst du den Inverter nicht benötigen, sondern das Signal sollte so schon passen…

Denke ich auch. Deshalb hatte ich nach der Kodierung gefragt:

A B Einstellung
0 0 Taster (TTL-Pegel HIGH) (Standard)
0 1 Schalter (TTL-Pegel HIGH)
1 0 Taster (TTL-Pegel LOW)
1 1 Schalter (TTL-Pegel LOW)

In der Standard-ESPuino-Konfig müsste ja „Taster / LOW“ gefragt sein, oder? Also die Lötbrücke „A“ geschlossen.

ESPuino arbeitet mit „low active“, das ist korrekt.
Der Port-Expander reagiert allerdings auf Zustandsänderungen und wirft dann Interrupts. Also das kann auch anders rum sein. Also wie gesagt: Wenn wir der Default-Config folgen, dann würde ich da einen PullUp hinmachen.

Also gemäß der angehängten Grafik oben hängt es an EXT.2. Das ist tatsächlich ein SW3.3; also ein Dauer-3.3.
@hnymphius Gehe mal ab EXT.6 oder EXT.8. Ggf. erledigt sich das Problem damit schon.

Ansonsten bitte bisschen besser beschreiben, welche Platine verwendet wird. Weil das weiß ansonsten nur ich. Und merken kann ich es mir auch nur deswegen, weil du als einziger User deine Platine abgeholt hast hier, hehe.

sind nicht die PullUps im PE aktiv?

und nein das Signal passt nicht in der Default Config, Fehler von mir :slight_smile: aber mit Brücke auf A sollte es pasen

1 „Gefällt mir“

Doch, die sind immer aktiv, wenn ein Eingang als Input konfiguriert wird. Möglicherweise bringt ein PullUp auch nix, muss man testen. Die internen PullUps sind aber „weak“.

Ich muss zugeben, dass ich hätte den oberen Teil wieder anpassen müssen, als ich im Anschluss (im unteren Teil) entdeckt habe, dass hier tatsächlich SW3.3 verwendet wird. Das Wissen hatte ich oben noch nicht :slight_smile:

Also ich vermute stark, dass das eigentliche Problem SW3.3 ist. Weil das Problem hatte ich bei der Kopfhörerplatine exakt auch so. D.h. der Eingang ist HIGH, dann überführst du den ESP32 in den Deepsleep und damit fällt auch die Spannung an der Peripherie, weil sie ja ausgeschaltet wird. Der Eingang ist dann nicht mehr HIGH und der PE löst einen Interrupt aus und der ESP32 wacht direkt wieder auf. Mangels wirklicher Alternativen habe ich bei der Kopfhörerplatine ja den zugehörigen Eingang vor dem Schlafen zum Ausgang umkonfiguriert.

1 „Gefällt mir“

HI,

erst einmal vielen Dank für die Hinweise und Tipps. Leider musste ich andere Arbeiten dazwischen schieben und kam erst jetzt wieder dazu, die Versuche fortzusetzen.
Also ich habe eine 10kOhm Widerstand von Plus zum Pin 2 vom CD4049 (Inverter) eingebaut, aber das Verhalten ändert sich dadurch nicht. D.h. der Espuino startet von selbst nach Abschaltung.

…???

Hier stehe ich nun und es sieht fast danach aus, dass ich die Idee mit dem Touchschalter aufgeben muss…

Schau mal, dass du dein Board nicht an SW3.3 sondern an 3.3 hängst. Ich vermute, dass das dein Problem löst.

Torsten,

ja SW3.3 ist das auslösende Problem. Habe es jetzt auf Ext.Pin 6 (3.3) gehängt und es läuft, ESP geht schlafen und wacht nicht von selbst auf. Top, so kann ich weiter machen. Danke für die Lösung.