ESP32: Hardware Interrupt triggert spontan.

OP #7291359
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
Keith S. schrieb:
> Jemand eine Idee, wie ich dieses Problem sinnvoll analysieren kann?

Wozu analysieren? Du musst immer mit Störimpulsen in deine Leitung 
rechnen.
Programmiere eine vernünftige Tasterentprellung. Dann kann es dir egal 
sein.
Gast
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
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
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.
OP
Wow - vielen Dank Euch für die vielen Tipps in dieser kurzen Zeit! Damit 
komme ich auf jeden Fall weiter. Werde vorsichthalber sowohl auf 
externen Pull-up wechseln als auch die Mindestlänge implementieren.

Nochmal: vielen Dank und friedliche Feiertage!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 3 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.