Arduino bekommt falsche Trigger aufgrund des Ein-/Ausschaltens des Kompressors?

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?

Vielleicht braucht Ihr Arduino eine Art Schild (Wortspiel beabsichtigt)?
Wenn die Endschalter zur Sicherheit dienen, sollten sie unabhängig vom Arduino sein. ZB: Sie würden direkt die Motorversorgung unterbrechen. (Möglicherweise Schalter mit höherer Stromkapazität und Freilaufdioden erforderlich.)

Antworten (2)

Dies ist mit ziemlicher Sicherheit Rauschen, wahrscheinlich aufgrund mehrerer Designprobleme:

  1. Hohe Impedanz. Ein passiv hochgezogenes Signal hat die Impedanz des Hochziehens im Ruhezustand. In einer lauten Umgebung muss dieser Pullup niedrig sein oder passiv schwebende Leinen ganz vermieden werden.

  2. Keine Abschirmung.

  3. Schlechte Strategie zur Erdung des Gesamtsystems. Da Sie "Arduino" erwähnt haben, möglicherweise sogar keine Gesamtsystemerdungsstrategie.

  4. Schlechte Firmware. Mit kurzen Störungen auf mechanisch geschalteten Leitungen ist zu rechnen.

Immer entprellen. Bei Endschaltern für bewegliche Teile mit hoher Geschwindigkeit (oder Trägheit) ist dies jedoch manchmal schwierig.

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.