ESP32: Hardware Interrupt triggert spontan.

OP #7291359
Lesenswert?

Hallo liebe Wissenden ;-)

Ich lese mittels ESP32 einen Stromzähler per RS485 aus, Details siehe 
unten. Zwischen GPIO13 des ESP und GND hängt ein Taster. Ein Druck auf 
diesen Taster triggert einen Interrupt, der über einen entsprechenden 
Handler eine Aktion ausführt.

Funktioniert.

Aber: mehrmals am Tag wird der handler getriggert, OHNE dass jemand den 
Taster gedrückt hätte...

Jemand eine Idee, wie ich dieses Problem sinnvoll analysieren kann?




ESP32: https://www.wemos.cc/en/latest/d32/d32_pro.html

RS485: 
https://eckstein-shop.de/WaveshareRS485communicationboard2CSP3485onboard2C33V

Stromzähler: https://www.panda-solar.de/Victron-ET112-Energy-Meter.html

Codeschnipsel, der den Interrupt setzt:
pinMode(reset_pin, INPUT_PULLUP);
attachInterrupt(reset_pin, reset_request_handler, FALLING);
Gast #7291394
Lesenswert?

Der Internet PullUp Widerstand ist recht hochohmig, bietet keinen Schutz 
vor Radiowellen.

Benutze einen externen Widerstand mit 2,2 kΩ, dann hast du sehr 
wahrscheinlich Ruhe. In ganz harten Fällen kannst du noch einen 10nF 
Kondensator zwischen GPIO und GND packen.
OP #7291395
Lesenswert?

Wolfgang schrieb:
> Wozu analysieren? Du musst immer mit Störimpulsen in deine Leitung
> rechnen.
> Programmiere eine vernünftige Tasterentprellung. Dann kann es dir egal
> sein.

Mir ist klar, dass ein Tasterdruck ohne Entprellung ggfs. mehrfach den 
handler triggert. Aber "Entprellung", um Fehlerkennung zu verhindern ist 
mir neu. Wie denn? Eine Mindestlänge fordern?
Gast #7291408
Lesenswert?

Keith S. schrieb:
> Hast Du dafür Beispielcode? Gibt ja ggfs. auch längere Störimpulse.

Woher sollen die kommen?
ESD liegt eher im Nanosekundenbereich.
Du könntest den Taster regelmäßig, z.B. im 10ms-Takt o.ä. abfragen. Wenn 
du ein paarmal hintereinander "gedrückt" liest, wird da wohl was dran 
sein und du kannst deine Aktion auslösen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren