Steuerung der Stärke eines Elektromagneten mit Arduino

Diese vorherige Frage Die Steuerung eines Elektromagneten mit Arduino befasst sich nur mit der binären Steuerung (EIN oder AUS). Auf meiner Seite muss ich die Stärke des Magnetfelds wählen.

Es ist ein hausgemachter Elektromagnet, ich habe es geschafft, ihn mit 12 V DC + einem 5-Ohm-Widerstand zu versorgen, der ungefähr 2 Ampere ergibt. Das resultierende Magnetfeld ist groß genug. Der Widerstand wird heiß, aber das ist erträglich.

Jetzt möchte ich die Intensität zwischen 0 und 2 Ampere von einigen Sensormesswerten modulieren, also plane ich, ein Arduino zu verwenden.

Kann ich PWM verwenden, wenn ich weiß, dass die induktive Last erheblich ist? Ist die Frequenzwahl der PWM kritisch? Werde ich Probleme mit Wirbelströmen im weichen Kern haben? (Ich kann keinen laminierten Kern verwenden).

Meine Frage ist also: Ist PWM wirklich eine gute Wahl? Wenn ja, sollte ich den 5-Ohm-Widerstand behalten? Wie kann ich meine PWM-Frequenz + Alpha kalibrieren? Wenn nein, was könnte ich stattdessen tun? Welche Schaltung?

Vielen Dank

PWM wird routinemäßig zur kontinuierlichen Intensitätssteuerung von elektromagnetischen Lasten verwendet, also ja, es wird funktionieren. Ihre Bedenken werden der Mechanismus sein, den Sie verwenden, um den für den Elektromagneten erforderlichen Hochstrom zu schalten (viele Fragen auf dieser Website befassen sich damit), der induktive Flyback (verwenden Sie eine Diode in Sperrrichtung über der Spule) und (möglicherweise) die Sicherstellung Ihrer PWM-Frequenz keine Harmonische der natürlichen Resonanzfrequenz, die Ihre Spule zufällig hat.
Gleichstrommotoren sind ebenfalls Induktoren. Vielleicht wäre ein Motorschild eine bequeme Lösung?
Wenn Sie ein Oszilloskop haben, können Sie leicht sehen, ob der Induktor gesättigt ist. Wenn dies der Fall ist, sollten Sie eine höhere PWM-Frequenz in Betracht ziehen. Wenn die Frequenz hoch genug wird, erreicht der Strom durch die Induktivität sein Maximum/Minimum nur bei 100/0 Prozent Einschaltdauer.
@jippie: das verstehe ich nicht. Wenn dies > 50 % ist, dann ist während jedes Zyklus die „Anstiegszeit“ länger als die „Abstiegszeit“, sodass der Strom ein wenig höher endet als dort, wo er begonnen hat. Warum sättigt es nach vielen Zyklen nicht? (Ich habe festgestellt, dass dies nicht der Fall ist, aber ich kann herausfinden, warum)

Antworten (1)

PWM ist eine gute Wahl, und denken Sie daran, dass die Spule eine umgekehrt angeschlossene Diode benötigt, um zu verhindern, dass Gegen-EMKs von der Spule mit offenem Stromkreis beschädigt werden. Sie müssen auch einen Leistungstransistor verwenden, um eine Schnittstelle zwischen dem Arduino und der Spule herzustellen - das Arduino bietet nicht genug "Antrieb", um in die Nähe von 2A zu gelangen. Hier ist ein Diagramm, das einen Transistor von einer MCU zeigt, aber einen Motor anstelle einer Spule hat. Das spielt keine Rolle - wichtig ist, dass es die Diode und eine Methode zum Ansteuern der Spule zeigt: -

Geben Sie hier die Bildbeschreibung ein

Es zeigt auch +5V an, aber das können +12V sein. Dinge, auf die Sie achten sollten: -

1) Die Diode muss für einen Strom ausgelegt sein, der den maximalen Strom durch die Spule übersteigt.

2) Die Spule benötigt im Falle von Kurzschlüssen immer noch den Widerstand in Reihe, aber er kann auf etwa 1 Ohm reduziert werden, wenn Sie mit dem Betrieb zufriedener sind.

3) Der Transistor muss so ausgelegt sein, dass er den Strom schaltet, also wählen Sie wahrscheinlich einen, der mindestens 3A problemlos verarbeiten kann.

4) Die Nennspannung am Transistor muss nur 20 V oder höher sein

5) Der Widerstand in Reihe mit der Basis muss möglicherweise 100 Ohm betragen - versuchen Sie dies zunächst. Von einer 3V3-IO-Leitung bedeuten 100 Ohm einen Basisstrom von etwa 30 mA, und wenn der HFE des Transistors beim Schalten von Leistungslasten (100+) gut ist, sollte er in Ordnung sein, es kann jedoch besser sein, dafür und dort einen FET zu verwenden sind reichlich zur Auswahl.

Als nächstes versuchen Sie, einen 50:50 Mark-Space-Impuls (eine Rechteckwelle) auszugeben und die Frequenz zu ändern, und sehen Sie, wie die Kernverluste bei zunehmend höheren Frequenzen sind. Ich hätte gedacht, dass 1 kHz ein guter Ausgangspunkt ist, und Sie können hoffentlich mit 10 kHz zufrieden sein.

Vielen Dank für Ihre vollständige Antwort. Ich habe es mit dem Standard-Arduino-500-Hz-PWM und einem MOSFET IRF520 (wird heiß, also versuche ich es mit einem besseren) + Flyback-Diode + Optokoppler zum Laufen gebracht. Aber ich verstehe immer noch nicht, warum sich der Strom nicht progressiv (nach vielen Zyklen) aufbaut, wenn das PWM-Verhältnis> 50% beträgt, da während jedes Zyklus die Zeit zum Hochfahren länger ist als die Zeit zum Herunterfahren Die Strömung sollte etwas höher enden als dort, wo sie begonnen hat!
ok, ich glaube, ich habe es dank einiger Simulationen herausgefunden circuitlab.com/circuit/73nx5a/ferropwm .