Ich arbeite daran, einen rotierenden Arm mit einer montierten Kamera über einen Gleichstrommotor und Endschalter in einer Gärkammer zu steuern.
Immer wenn der Kompressor der Kammer ein- / ausgeschaltet wird, treten beim Arduino falsche Endschalterauslöser auf.
Die Endschalter sind über eine Pull-up-Schaltung als Schließer angeschlossen .
Die Armdrehung funktioniert nach meinem Code völlig problemlos, bis auf die Momente, in denen der Kompressor ein- oder ausgeschaltet wird.
Woran liegt das und wie könnte es gelöst werden?
Dies ist mit ziemlicher Sicherheit Rauschen, wahrscheinlich aufgrund mehrerer Designprobleme:
Wie Olin Lathrop betont, ist elektrisches Rauschen das Problem. Es gibt drei Dinge, die Sie wirklich tun möchten:
1) Verwenden Sie Kondensatoren, wo lange Drähte eintreten. Dadurch wird verhindert, dass elektrisches Rauschen, das von den Drähten aufgenommen wird, den Arduino stört. Sie können auch Kondensatoren in der Nähe des Arduino verwenden.
2) Verwenden Sie eine optische Isolierung und höhere Stromflüsse, die weniger anfällig für Rauschen sind. Anstatt also nur einen Pull-up für den Schalter zu verwenden, lassen Sie den Schalter einen Stromkreis mit einem Vorwiderstand schließen, der eine LED beleuchtet, die auf eine Fotodiode oder einen Fototransistor scheint. Optoisolatoren kosten ein paar Cent und tun genau das, was Sie brauchen. Hier ist das Datenblatt für One- Link . Isolieren Sie sowohl Ein- als auch Ausgänge, wenn Sie können.
3) Verlegen Sie störende Kabel von sensiblen Bereichen fern. Halten Sie die Leitungen, die außerhalb des Gehäuses verlaufen, so weit wie möglich vom Arduino entfernt. Wenn Sie beispielsweise mehr als einen Optoisolator verwenden, richten Sie sie so aus, dass sich die Arduino-Seiten in der Nähe des Arduino befinden und die Seite, die mit der Außenwelt verbunden ist, davon entfernt ist.
Dmitri Grigorjew
Rock Adams