Ich habe zur Zeit bei einem Projekt folgendes Problem:
Nach 1-2 Wochen problemlosen Einsatzes sind plötzlich Eingangs-Pins defekt. Ich habe mit sie mit pinMode(A1 „bzw. A2“, INPUT_PULLUP) deklariert und schalte sie extern über zwei Relais gegen GND.
Dass sie defekt sind, äußerst sich derart, daß die betroffenen PINS nun nicht mehr HIGH sind und sich verhalten als wäre das Relais immer geschlossen.
Das Setup ist wie folgt:
2 Lichtschranken (OMROM E3JK-R4M1), die mit 12VDC versorgt werden (in denen befindet sich das Relais, das bei Reflexion (oder ausgeschalteter Lichtschranke) den Kontakt schließt und bei Unterbrechung der Reflexion öffnet).
Der Arduino (um genau zu sein, kein Original. Aber keine Sorge, ich mache regelmässig meine Donations ) befindet sich in 3m Entfernung und ist über ein 4adriges Kabel (je 0.35mm2) sowohl mit der Versorgungsspannung (12V an Vin und GND, parallel zu den Lichtschranken) als auch den 2 Signalleitungen (Schließkontakte der Relais) verbunden.
Desweiteren kommuniziert der Arduino noch mit einem MCP23017 über I2C und schaltet dort 12V-LEDs (auch hier die gleiche Stromversorgung), aber der Teil funktioniert weiterhin problemlos.
Nun weiß ich ja, daß Überspannung einen Eingangspin zerstören kann, aber woher sollte die kommen, da das Relais ja nur gegen GND schaltet?
Ist evtl. die Kabellänge dafür verantwortlich und sorgt wegen meiner Missachtung von EMV für zerstörerische Einflüsse? Ihr merkt, da bin ich kein Experte, aber lerne immer wieder neu dazu, wenn vieles, was auf dem Steckbrett funktioniert in der fertigen Anwendung sich ganz anders verhält..
Sollte ich von internen PullUps auf externe wechseln?
Kann ich die Eingangs-Pins gegen unerwünschte Spannungen absichern? Und wenn ja, wie?
Sollten noch weitere Informationen gewünscht sein (Schaltplan, Sketch), kann ich die gerne noch nachreichen.