So erkennen Sie Hochstrom

Ich arbeite an dem Projekt, bei dem ein Gleichstrommotor betrieben wird, mit dem die Fensterscheibe im Fahrzeug angehoben / abgesenkt wird.

Während des Betriebs zieht der Motor etwa 1,5 A Strom. Wenn das Fenster jedoch das Ende der Schieber erreicht und der Motor das Glas nicht mehr anheben/absenken kann, beginnt er, bis zu 15 A zu ziehen, bis Sie die Taste loslassen.

Ich möchte einen AVR-Mikrocontroller verwenden, um diesen Motor zu steuern, und möchte den Motor stoppen, wenn das Fenster die Barriere erreicht. Ich habe bisher drei Lösungen gefunden:

  1. Verwenden Sie Schalter, die den Mikrocontroller auslösen und informieren, wenn das Fenster die Barriere erreicht. Ich möchte dies vermeiden, da dies bedeutet, zwei Schalter pro Fenster zu installieren und zusätzliche Kabel zum Mikrocontroller zu verlegen.
  2. Verwenden Sie die Timer-Funktion, die den Motor nach einer bestimmten Zeit ausschaltet. Dies gilt nicht, da die Spannung variieren kann und der Motor schneller oder langsamer als normal drehen kann. Außerdem kann sich das Fenster beim Starten des Timers an einer unbekannten Position befinden (ganz oben, in der Mitte ...).
  3. Verwenden Sie eine Art Hochstromdetektor und leiten Sie ihn an den Eingang des Mikrocontrollers weiter, um das Programm zu warnen, wenn der Stromschwellenwert erreicht ist (z. B. 5A). So etwas wie ein Transistor, ein Relais oder ein ähnliches Gerät, das den so hohen Strom am Eingang verarbeiten kann.

Ich bin so ziemlich ein Anfänger, wenn es um Elektronik geht, also habe ich überlegt, ob es eine Möglichkeit gibt, diesen hohen Strom zu erkennen (der Motor läuft mit ~ 12 V) und dieses Signal an den Mikrocontroller (der mit 5 V läuft) zu senden.

Ich freue mich über jede Hilfe. Vielen Dank!

Antworten (4)

Das sollte ziemlich einfach sein. Sie können den Unterschied zwischen 1,5 A und 15 A mit einem einfachen Widerstand erkennen. Ein Wert von 0,3 Ohm ergibt 0,45 V bei 1,5 A und 4,5 V bei 15 A.

Geben Sie hier die Bildbeschreibung ein

Ein digitaler Eingangspin am Mikrocontroller liest 0 bei 1,5 A und 1 bei 15 A.

Sie könnten dies direkt mit dem Eingangspin des Mikrocontrollers verbinden, aber es wäre wahrscheinlich am besten, ein wenig Filterung und Schutz hinzuzufügen.

RF und C1 bieten einen Tiefpassfilter, um die Spannung stabiler zu machen.

D1 bietet Überspannungsschutz, falls der Strom 15 A stark überschreitet.

Ein 12-V-Motor, der bei 15 A stehen bleibt, hat einen Ankerwiderstand von 0,8 Ω, sodass an R1 etwa 3,3 V anliegen, was fast 36 W abführt!
@MikeJ-UK - Wie lange noch? Die MCU schaltet den Motor innerhalb von ein bis zwei Millisekunden ab. Die typische Verlustleistung beträgt nur 0,675 W.
Richtig, nehme ich an, solange das OP keine unbequemen Haltepunkte in seinem Debugger setzt!
@MikeJ-UK - Haha! Ja. Ich habe Motoren schon wegen Haltepunkten durchgebrannt. Aber dieses Problem ist das gleiche, was auch immer zum Erfassen von Strom verwendet wird. Vergessen Sie nicht, dass die Motorverlustleistung während des Stillstands 180 W beträgt!

Allegro verfügt über eine Reihe von Stromsensor-ICs, die auf Hall-Effekt-Sensoren basieren. Der ACS712 kann Ströme bis zu 50 A erkennen.

Geben Sie hier die Bildbeschreibung ein

Der ACS712ELCTR-20A-T hat eine Empfindlichkeit von 100 mV/A, sodass Sie den ADC des Mikrocontrollers verwenden können, um zu erkennen, wann die Schwelle von 500 mV (5 A) erreicht ist, oder besser einen Komparator verwenden, der den Mikrocontroller unterbricht. Viele AVRs haben einen Komparator auf dem Chip, dem ein Interrupt exklusiv zugewiesen ist.

Der ACS712 hat einen Stromerfassungspfadwiderstand von nur 1,2 mΩ , sodass er selbst bei 15 A nur 270 mW verbraucht , was er für immer aushalten kann. Das ist der Hauptvorteil gegenüber einem traditionelleren Strommesswiderstand wie in Rocketmagnets Antwort. Dort benötigen Sie einen relativ hohen Widerstand, um den hohen Pegel bei 15 A zu erreichen. Mike hat berechnet, dass der Messwiderstand von Rocketmagnet 36 W abführen wird, wenn der Motor stehen bleibt, daher ist das Timing dort entscheidend (für einen Moment die 131 W Verlustleistung im Motor außer Acht lassend). Trotzdem wird für den Messwiderstand ein 5-W-Typ empfohlen.

Unabhängig von der Lösung ist das Timing entscheidend. Alle konzentrieren sich auf die 36-W-Verlustleistung des Widerstands, vergessen aber völlig die 180-W-Verlustleistung des Motors! Dieser Motor wird ziemlich schnell durchbrennen.
@Rocket - Ich habe den Motor erwähnt, nur meiner hat 131 W, was hoch genug ist. Sie haben zwar Recht, dass Sie schnell reagieren sollten, aber zumindest der Allegro-Sensor wird kein Problem darstellen. Ich erwähne die 5 W, weil die meisten Widerstände nicht einmal für einen Moment > 10 x Nennleistung zulassen. Ich denke, Ihr Messwiderstand kann kleiner gewählt werden, da die meisten Controller 0,7 Vcc bereits als hoch sehen, und bei 15 A sind das 0,23 &OHgr;.

Es gibt diese Dinger, die man magnetische Reed-Schalter nennt. Im Grunde wie ein Relais; Ein Strom verursacht ein Feld, das einige Kontakte schließt. Wenn Sie einen in Reihe mit dem Motor schalten, sollten Sie in der Lage sein, einen zu finden, der bei 1,5 oder 2 A offen bleibt, aber bei 15 A schließt. Erden Sie einen der Schalterkontakte, ziehen Sie das andere Ende an Ihr logisches +V und voila, ein isoliertes digitales Eingangssignal.

Haben Sie einen Link für Reedschalter, die 15 A schalten können?
der Reedschalter schaltet den 15A Strom nicht. Der Strom von 15 A aktiviert den Reed-Schalter. Der Schalter selbst schaltet eine sehr kleine Strommenge bei Logikspannung. Dies liefert den digitalen Eingang für das Mikro, das alles ausschaltet, was es eingeschaltet hat, um die 15A überhaupt zu liefern.

Nicht wirklich eine elektronische Lösung, sondern eine mechanische: Wenn Sie die Mechanik beherrschen, können Sie eine Schalterlösung am Motor verwenden, indem Sie beispielsweise von einem kleinen auf ein großes Zahnrad umstellen, das sich während des gesamten Vorgangs weniger als einmal dreht. Eine Delle an diesem Zahnrad könnte einen Schalter auslösen. (So ​​macht es unser Garagentoröffner.)