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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.