Ich habe eine einfache Schaltung, die unten abgebildet ist und einen Arduino verwendet, um zwei große bidirektionale Motoren über 12-V-Relais zu steuern. Normalerweise funktioniert das gut, aber manchmal setzt sich der Arduino selbst zurück.
Ich denke, was passiert, ist, dass die Motoren beim Starten viel Strom verbrauchen, was dazu führt, dass das Arduino einen vorübergehenden Stromausfall hat, bei dem es zurückgesetzt wird. Um dies zu beheben, habe ich einen 1000-uF-Elektrolytkondensator und einen 22-uF-Keramikkondensator hinzugefügt. Zusätzlich habe ich die Leistungs- / Masseebenen des Arduino mit 1N4001-Dioden "abgemauert", damit die Motoren während eines Stromabfalls keine Ladung vom Arduino stehlen können.
Wenn ich auf die VIN / GND zum Arduino schaue, sehe ich immer noch gelegentlich einen Leistungsabfall, aber bei den Dioden / Kondensatoren sind die Spitzen sehr kurz und scharf. Überraschend ist, dass diese Leistungsabfälle nicht immer einem Neustart vorausgehen, soweit ich das beurteilen kann.
Meine aktuelle Arbeitstheorie ist, dass die Stromabfälle den Speicher beschädigen oder nur die Instabilität im Arduino auslösen, weshalb Stromabfälle im Allgemeinen nicht sofort einen Neustart verursachen.
Ich habe ein paar Tage damit verbracht, mit diesem Problem zu kämpfen, und ich weiß immer noch nicht, was ich tun soll, um es zu beheben. Ich verstehe nicht, warum beim Arduino ein plötzlicher Stromausfall auftritt, wenn es mit Dioden abgeschirmt ist. Jede Hilfe wäre willkommen.
Bearbeiten 1 Hier ist das Schema für die Motorsteuerung. Umgebungsrelais sind auf GND, nur eines ist während einer Bewegung eingeschaltet. Wenn ich auf das Zielfernrohr schaue, sehe ich einige Stacheln am Tor. Ich habe 10-uF-Keramikkondensatoren zu den Gate-Leitungen hinzugefügt, aber das hat das Neustartproblem nicht vollständig behoben.
Und hier ist der Schaltplan für die Stromversorgung des Arduino. Ich habe eine Diode auf der High-Side und auf der Low-Side. Die High-Side-Diode soll verhindern, dass die Motoren Ladung von den Kondensatoren stehlen, und der Low-Side-Kondensator soll verhindern, dass die Motoren die Masseebene bewegen. Das Problem bleibt mit oder ohne eingesetzte Low-Side-Diode bestehen.
Ich glaube nicht, dass das Problem von der Stromversorgung herrührt, ich kann den Stecker ziehen und das Arduino läuft ungefähr zwei Sekunden lang weiter. Ich habe mehrere Tage damit verbracht und nichts gefunden, was diese Schaltung zuverlässig macht. Ich weiß nicht, was ich versuchen soll.
Bearbeiten 2 Ich denke, dass das Problem darin besteht, dass die Relais manchmal Lichtbögen bilden, was EMI verursacht, das das Arduino stört. Ich brauche einen RC-Snubber, um das zu beseitigen, aber wie schließe ich einen solchen Snubber richtig an meiner Schaltung an?
Ihre N FETs stehen auf dem Kopf.
Sollte sein:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Mit dem Schaltplan sehe ich, dass Sie Dioden sowohl in Strom als auch in Masse haben.
Der auf der Masseseite ist nicht erforderlich und erschwert wahrscheinlich die Messung von Störungen, da Ihr Oszilloskop auch mit Masse verbunden wird. Es wäre auch besser, eine Shottky-Diode zu verwenden, da sie weniger Spannungsabfall hat.
Es wäre nützlich, eine Scope-Spur zu haben, die sowohl die Motorleistung als auch die Arduino-Leistung gleichzeitig anzeigt. Erweitern Sie die Spur, damit wir die Breite der Impulse sehen können, um die wahrscheinliche Ursache zu bestimmen. (Es ist besser, wenn möglich, einen Screenshot mit dem Zielfernrohr zu machen, anstatt ein Foto zu machen, es wird klarer).
Wenn die Breite des Ausfalls mit der Zeitkonstante des großen Kondensators und dem Drain des Prozessors übereinstimmt, wird er durch einen Stromausfall verursacht. Wenn er sehr kurz ist (Nanosekunden bis Mikrosekunden), liegt wahrscheinlich eine Störung vor irgendwie anders.
Es kann sich lohnen, die Spannung des Brown-Out-Detektors (BOD) auf einen niedrigeren Wert als normal (z. B. 2,7 V) einzustellen, um mehr Spielraum zu haben, wenn die Spannung abfällt.
Vor einigen Jahren habe ich ein ähnliches System entwickelt. Um die durch die starke Startmotorlast verursachten Spannungsabfälle zu vermeiden, habe ich die Batteriespannung mit einem LT1949-Aufwärtswandler auf 6 V erhöht, Energie in einer großen 2200-uF-Kappe gespeichert) und dann auf die vom Prozessor (ATMega128) benötigten 5 V heruntergeregelt . Die im Kondensator gespeicherten zusätzlichen 1 V ermöglichten es ihm, um bis zu einem Volt abzufallen, ohne die Versorgung des Prozessors zu beeinträchtigen, und um weitere 500 mV, bevor er die Mindestspannungsanforderung für den Prozessor erreichte. Dies ist das Dreifache der Marge, die Sie erhalten, wenn Sie einfach einen großen Kondensator an die Versorgung anschließen.
Dieses System ließ die Batteriespannung problemlos auf etwa 3 V abfallen und konnte 10 Millisekunden mit einer noch niedrigeren Spannung überleben.
Ich habe einen RC-Snubber um jede Vcc / GND-Seite des Relais hinzugefügt, also insgesamt 4 RC-Snubber. Dies schien das Problem zu beheben.
Ich glaube, was passiert ist, war, dass es einen Lichtbogen im Relais gab, der EMI verursachte, der den IC zurücksetzen würde.
DKNguyen
Tony Stewart EE75
zeeman_effekt
Abel
zeeman_effekt
Abel
Abel
zeeman_effekt
Benutzer208862
Bobflux
Bobflux