Steuerung einer elektromagnetischen Stärke mit Arduino


11

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 Magnetfeldes 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 liefert. 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 anhand einiger Sensorwerte modulieren, daher plane ich die Verwendung eines Arduino.

Kann ich PWM verwenden, wenn ich weiß, dass die induktive Last erheblich ist? Ist die Frequenzwahl der PWM kritisch? Habe ich Probleme mit Wirbelströmen im weichen Kern? (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ätskontrolle elektromagnetischer Lasten verwendet, also funktioniert es. Ihre Bedenken sind der Mechanismus, mit dem Sie den für den Elektromagneten benötigten hohen Strom schalten (viele Fragen auf dieser Site beziehen sich darauf), der induktive Rücklauf (verwenden Sie eine Diode in Sperrrichtung über der Spule) und (möglicherweise) die Sicherstellung Ihrer PWM-Frequenz Keine Harmonische für die Eigenresonanzfrequenz Ihrer Spule.
Anindo Ghosh

Gleichstrommotoren sind auch Induktivitäten. Vielleicht wäre ein Motorschild eine bequeme Lösung?
Phil Frost

Wenn Sie ein Oszilloskop haben, können Sie leicht sehen, ob der Induktor gesättigt ist. In diesem Fall sollten Sie eine höhere PWM-Frequenz in Betracht ziehen. Wenn die Frequenz hoch genug wird, erreicht der Strom durch die Induktivität erst bei einem Tastverhältnis von 100/0 Prozent sein Maximum / Minimum.
Jippie

@ Jippie: Das verstehe ich nicht. Wenn dies> 50% ist, ist die Aufwärtszeit während jedes Zyklus länger als die Abwärtszeit, sodass der Strom etwas höher endet als dort, wo er begonnen hat. Warum ist es nach vielen Zyklen nicht gesättigt? (Ich habe es nicht beobachtet, aber ich kann herausfinden warum)
antwortete am

Antworten:


6

PWM ist eine gute Wahl und denken Sie daran, dass die Spule eine in umgekehrter Richtung angeschlossene Diode benötigt, um zu verhindern, dass Gegen-EMKs durch den Induktor 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 genügend "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. Dies spielt keine Rolle - das Wichtigste ist, dass es die Diode und eine Methode zum Ansteuern der Spule zeigt: -

Geben Sie hier die Bildbeschreibung ein

Es zeigt auch + 5V, aber dies kann + 12V sein. Dinge, auf die Sie achten sollten: -

1) Die Diode muss auf einen Strom ausgelegt sein, der den maximalen Strom durch die Spule überschreitet.

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

3) Der Transistor muss für das Umschalten des Stroms ausgelegt sein. Wählen Sie daher wahrscheinlich einen, der problemlos mindestens 3A verarbeiten kann.

4) Die Nennspannung am Transistor muss nur 20 V oder mehr betragen

5) Der Widerstand in Reihe mit der Basis muss möglicherweise 100 Ohm betragen - versuchen Sie dies zunächst. Von einer 3V3-E / A-Leitung bedeutet 100 Ohm einen Basisstrom von etwa 30 mA. Wenn die HFE des Transistors beim Schalten von Leistungslasten (100+) gut ist, sollte dies in Ordnung sein. Es ist jedoch möglicherweise besser, hier und da einen FET zu verwenden gibt es eine große Auswahl.

Versuchen Sie als nächstes, einen 50: 50-Markierungsraumimpuls (eine Rechteckwelle) auszugeben und die Frequenz zu ändern, und sehen Sie, wie die Kernverluste bei zunehmend höheren Frequenzen aussehen. Ich hätte gedacht, 1 kHz ist ein guter Ausgangspunkt, 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ß, damit ich es besser probieren kann) + Flyback-Diode + Optokoppler zum Laufen gebracht. Aber ich finde immer noch nicht heraus, warum sich der Strom nicht progressiv aufbaut (nach vielen Zyklen), wenn das PWM-Verhältnis> 50% ist, da während jedes Zyklus die Anstiegszeit länger ist als die Ausfallzeit und Der Strom sollte etwas höher enden als dort, wo er begonnen hat!
antwortete am

ok, ich denke, ich habe es dank einiger Simulationen herausgefunden . Circuitlab.com/circuit/73nx5a/ferropwm .
antwortete am
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.