Arrow Electronic Components Online

Einfache DC-Motorgeschwindigkeitsregelung mit PWM

Motorsteuerung23 März 2023
Ein Raspberry Pi Pico-Mikrocontroller ist mit einer Steckbrettschaltung verbunden und steuert einen kleinen Gleichstrommotor.
Alle Artikel anzeigen

Von: Jeremy Cook

Eine der grundlegendsten Operationen in der Elektronik ist die Geschwindigkeitsregelung eines Gleichstrommotors. Hier werden wir uns die Grundlagen ansehen: das Senden eines PWM-Signals an einen MOSFET oder einen dedizierten Treiber. Dieses Signal steuert die Gleichstrommotor-Drehzahl direkt, indem es höhere Ströme (und oft auch Spannungen) verwendet, als der Controller selbst erzeugen kann.

Einfache LED-PWM-Steuerung

A blue handheld oscilloscope is shown capturing waveforms from a small electronic circuit on a white breadboard.

Jeremy Cook | Externe LED mit Pulsen, angezeigt durch Oszilloskop

PWM (d. h., Pulsweitenmodulation) simuliert eine analoge Spannungsausgabe, indem Impulse für unterschiedlich lange Zeit wiederholt werden. In diesem Setup wird die Periode als die Zeit definiert, die ein vollständiger Ein-/Aus-Zyklus benötigt. Der Tastgrad, oft als Prozentsatz ausgedrückt, ist das Verhältnis von Ein- zu Aus-Zeit.
 
Ein Fünf-Volt-Signal mit einem Tastgrad von 50% würde ein simuliertes 2,5V-Analogsignal ergeben. Eine Periode von 1 ms würde diesen Ein-/Aus-Zustandswechsel 1000 Mal pro Sekunde erzeugen (oder 1000 Hz), was als die Frequenz des PWM-Signals definiert ist. Die PWM-Steuerung funktioniert gut mit Gleichstrommotoren und anderen langsam verändernden Lasten. Ein echtes analoges Ausgangssignal ist in verschiedenen Situationen vorzuziehen, wie z. B. bei der Audiowiedergabe.
 
Wir verwenden den Raspberry Pi Pico, ausgeführt mit CircuitPython, um dieses Prinzip zu erkunden und PWM-Signale zu erzeugen. Für eine sehr kurze Einführung laden Sie den hier gefundenen Code. Dieser Code wechselt die Onboard-LED zwischen voller Stärke, oder 65.535 (2^16 – 1), und 4095 (2^12 -1), weniger als 1/10 des ursprünglichen Wertes. Man kann beobachten, wie sich das Licht ändert, obwohl es schwierig sein kann, das beobachtete Lichtausgabe mit dem numerischen Wert in Verbindung zu bringen.

MOSFET-Motorsteuerungsschaltung

This schematic diagram features a Raspberry Pi Pico microcontroller connected to a simple DC motor driver circuit.

Jeremy Cook | MOSFET-DC-Motorsteuerungsschaltung

Die Steuerungsmethodik bei Verwendung eines MOSFET (FQP30N06L) ist im Wesentlichen die gleiche wie bei einer LED. Der Code für unser nächstes Experiment ist hier zu finden. Schließen Sie den steuernden Ausgang über einen kleinen Widerstand (~100Ω) an den Gate-Pin des MOSFET an. Fügen Sie einen 10k-Widerstand zur Erdung hinzu, um ihn niedrig zu ziehen, wenn kein Eingang vorhanden ist. Der Pluspol des Motors wird zur Drain-Anschluss des MOSFET geführt, während die Source-Anschluss des MOSFET mit der Erde verbunden ist.
 
Der VBUS-Pin lieferte zunächst die positive Spannung; jedoch wäre es im Allgemeinen besser, eine externe Spannungsquelle zu verwenden, die mit einem gemeinsamen Erdungspunkt mit dem Pico verbunden ist. Die Implementierung einer Freilaufdiode wäre ebenfalls ratsam, um streuende induktive Lasten zu bewältigen.

L293D Motor-Treiber: Ein einfacherer Weg, eine DC-Motorsteuerungsschaltung zu bauen

A Raspberry Pi Pico microcontroller is connected on a white breadboard alongside a small DC motor.

Jeremy Cook | Bildunterschrift: L293D Motor Driver

MOSFETs sind großartige Allzweckgeräte, aber wenn Sie Geschwindigkeit und Richtung steuern möchten – oder wenn Sie mehr als einen Motor betreuen müssen – wird es sehr schnell kompliziert. Glücklicherweise stehen gebrauchsfertige Motorsteuerungs-ICs zur Verfügung, um diese Herausforderung zu bewältigen, einschließlich des bewährten L293D-Treibers, der hier verwendet wird. Die Verdrahtungsanforderungen können dem Datenblatt entnommen werden. Die Methode, die ich verwendet habe, um ihn an meinen Raspberry Pi Pico anzuschließen, ist unten dargestellt:

This schematic shows a Raspberry Pi Pico microcontroller connected to an L293D motor driver IC.

Jeremy Cook | U4 GND-Pins intern verbunden

Der digitale Ein/Aus-Rotationscode für diese Einrichtung ist hier zu finden, wodurch der Motor mit voller Stärke vorwärts und rückwärts läuft, mit Pausen dazwischen. Dieser PWM-Code initialisiert den Motor mit einem spezifischen Tastverhältnis, beschleunigt ihn schrittweise und stoppt dann. Danach beschleunigt er in die andere Richtung und stoppt erneut, bevor die Sequenz wiederholt wird.

Ein Wort der Vorsicht zum L293D Treiber

Beim Verwenden des letzten Codes (mit einem 12V VCC2-Eingang und ohne Kondensator) habe ich ein Raspberry Pi Pico Board deaktiviert. Eine gute Vorgehensweise wäre gewesen, Kondensatoren zu verwenden, um die Strom- und Logikeingänge auszugleichen. Der L293D bietet interne Klemmschutzfähigkeiten, um sich um induktive Lasten zu kümmern, sodass keine externen Freilaufdioden hätten benötigt werden sollen. Es gibt mehrere potenzielle Ursachen dafür, wie dies passiert ist, aber es sollte als Erinnerung dienen, sicherzustellen, dass die Hardware spezifiziert und implementiert wird, um den realen Anforderungen zu entsprechen, sobald sie den Prüfstand verlässt.

Plug-and-Play – oder vollständige Anpassung?

Ihre Schaltungen zur Steuerung von Gleichstrommotoren werden wahrscheinlich nicht für immer auf einem Steckbrett bleiben. Von hier aus gibt es zwei unterschiedliche Wege:
 
Für fortgeschrittenere Prototypen oder Einzelanfertigungen stehen Motorschilde und Entwicklungsboards zur Verfügung, die Treiber wie den L293D als Plug-and-Play-Lösung für Gleichstrommotoren, Schrittmotoren, Servomotoren und mehr hinzufügen. Das Arduino Motor Shield ist vielleicht das bekannteste und ist mit dem Arduino Uno-Formfaktor kompatibel. Wenn Sie bei der RP2040-Plattform bleiben möchten, könnte der Maker Pi RP2040 eine ausgezeichnete Plug-and-Play-Lösung zur Steuerung von Motoren und anderen Geräten sein.
 
Am anderen Ende des Spektrums besteht die Möglichkeit, Motorsteuerungsdesigns direkt in Ihr eigenes Leiterplattendesign zu integrieren. Diese Integration bietet Ihnen nahezu unendliche Designfreiheit, sodass Sie zum Beispiel einige der Funktionen des Maker Pi RP2040 implementieren können, während Sie das weglassen, was Sie nicht benötigen. Sie können auch Ihre Platine in die perfekte physische Form für Ihre Anwendung layouten.

A Raspberry Pi Pico microcontroller is connected to a breadboard circuit alongside a JF-0530B solenoid.

Jeremy Cook | MOSFET zur Steuerung von Elektromotoren und anderen Lasten. Da das Magnetventil als Induktor wirkt, wäre eine Freilaufdiode immer noch eine gute Idee gewesen.

Die hier vorgestellten allgemeinen PWM-Steuerprinzipien sind solide und können für eine Vielzahl von Lasten verwendet werden; jedoch wurde die vorgestellte Hardware schnell als Demo für diesen Artikel zusammengestellt. Für endgültige Designs sollten Sie jede einzelne Situation sorgfältig berücksichtigen, zusammen mit den auf Arrow verfügbaren Spezifikationen und Datenblattinformationen. Mit der richtigen PWM-DC-Motorsteuerung kann Ihr Gerät jahrelang problemlos funktionieren.
 
Wie sich Ihr Design auch entwickelt, Arrow steht bereit, um die Mikrocontroller, MOSFETs, Motortreiber und andere Geräte bereitzustellen, die benötigt werden, um Ihren PWM-DC-Motorgeschwindigkeitsregler Wirklichkeit werden zu lassen!

Artikel tags

Global
Artikel
Motorsteuerung
Motoren

Zugehörige Inhalte