Arduino-Code und Video: L293D DC-Motorsteuerung (ohne Geschwindigkeitsregelung)
In diesem Tutorial erfahren Sie, wie Sie den Motorcontroller L293D mit einem Arduino verwenden, um einen Gleichstrommotor zu steuern. Der L293D ermöglicht es, den Motor sowohl im Uhrzeigersinn als auch gegen den Uhrzeigersinn zu drehen. Wenn Sie dieser Anleitung folgen, lernen Sie, wie Sie die Komponenten verdrahten und den Arduino programmieren, um die gewünschte Motorsteuerung zu erreichen.
In diesem Projekt verwenden wir den L293D-Motortreiber, um einen einzelnen Gleichstrommotor zu steuern. Der Motor kann die Richtung anhand der im Arduino-Code gegebenen Befehle wechseln. Für ein klareres Verständnis des Aufbaus und des Codes ist es hilfreich, das dazugehörige Video anzusehen (im Video bei 00:00).
Hardware erklärt
L293D ist ein integrierter Schaltkreis, der zum Ansteuern von Motoren entwickelt wurde. Er kann zwei Gleichstrommotoren gleichzeitig oder einen Schrittmotor steuern. Der Chip verwendet eine H-Brücken-Konfiguration, um die Drehrichtung zu kontrollieren, indem die Polarität der an den Motor angelegten Spannung umgeschaltet wird. Diese Flexibilität macht ihn zu einer ausgezeichneten Wahl für Robotik- und Automatisierungsprojekte.
Zusätzlich zum L293D werden wir ein Arduino-Board verwenden, um Steuersignale an den Motortreiber zu senden. Das Arduino erzeugt die notwendigen Logikpegel, um den Motor zu aktivieren und seine Drehrichtung zu bestimmen. Für den Aufbau werden außerdem ein Gleichstrommotor und eine Stromversorgung benötigt, wobei die Stromversorgung mit den Spannungsanforderungen des Motors kompatibel sein muss.
Details zum Datenblatt
| Hersteller | Texas Instruments |
|---|---|
| Teilenummer | L293D |
| Logik-/I/O-Spannung | 5 V |
| Versorgungsspannung | 4,5 - 36 V |
| Ausgangsstrom (pro Kanal) | 600 mA |
| Spitzenstrom (pro Kanal) | 1.2 A |
| Hinweise zur PWM-Frequenz | 20 kHz |
| Eingangslogik-Schwellenwerte | 2,5 V (typ.) |
| Spannungsabfall / RDS(on) / Sättigung | 1,5 V (max.) |
| Thermische Grenzwerte | 150 °C (max.) |
| Paket | 16-poliges DIP |
| Notizen / Varianten | Kann zwei Motoren steuern. |
- Stellen Sie sicher, dass die Versorgungsspannung 36 V nicht überschreitet.
- Sorgen Sie für eine geeignete Wärmeableitung, wenn Sie in der Nähe des maximalen Stroms arbeiten.
- Verbinden Sie stets die Masse des Arduino mit der des Motortreibers.
- Überprüfen Sie die Verkabelung, um Verpolungen zu vermeiden.
- Verwenden Sie PWM-Signale, um die Geschwindigkeit zu steuern, falls dies in zukünftigen Projekten erforderlich ist.
Verdrahtungsanleitung


Um den L293D-Motortreiber an den Arduino anzuschließen, beginnen Sie damit, Versorgungsspannung und Masse zu verbinden. Verbinden Sie Pin 4 und Pin 5 des L293D mit der Masse. Dann verbinden Sie Pin 1 (Vcc1) mit dem 5 V-Ausgang des Arduino. Für Vcc2 (Pin 8) verbinden Sie ihn mit einer externen Stromversorgung und stellen Sie sicher, dass diese der Motorspannungsspezifikation entspricht.
Als Nächstes verbinden Sie den Enable-Pin (Pin 1) mit Pin 8 am Arduino, um die Stromversorgung des Motors zu steuern. Für die Motorsteuer-Eingänge verbinden Sie Pin 2 (1A) des L293D mit Pin 2 am Arduino und Pin 7 (2A) mit Pin 7 am Arduino. Schließlich verbinden Sie die Motorklemmen mit Pin 3 (1Y) und Pin 6 (2Y) am L293D.
Codebeispiele und Schritt-für-Schritt-Anleitung
Der folgende Code initialisiert die Pins und richtet die Motorsteuerung ein. Die verwendeten Bezeichner umfassenP1Afür den ersten Steuerpin des Motors undEN12Für den Enable-Pin. Die Setup-Funktion konfiguriert die Pins als Ausgänge.
void setup() {
Serial.begin(9600); // setup Serial Monitor to display information
pinMode(P1A, OUTPUT); // define pin as OUTPUT for P1A
pinMode(P2A, OUTPUT); // define pin as OUTPUT for P2A
pinMode(EN12, OUTPUT); // define pin as OUTPUT for 1,2EN enable
}In der Loop-Funktion wird der Motor angewiesen, sich in beide Richtungen zu drehen, mit Verzögerungen dazwischen. Der Zustand des Motors wird im seriellen Monitor mithilfe vonSerial.println.
void loop() {
Serial.println("Rotating CW");
digitalWrite(EN12, HIGH); // Enable 1A and 2A
digitalWrite(P1A, HIGH); // send HIGH signal to P1A
digitalWrite(P2A, LOW); // send LOW signal to P2A
delay(3000); // motor runs for 3 seconds
digitalWrite(EN12, LOW); // Disable 1A and 2A
}Dieser Auszug zeigt, wie man die Drehrichtung des Motors durch Ändern der an ihn gesendeten Logikpegel steuert.P1AundP2A. Der Motor läuft 3 Sekunden, bevor er anhält und die Richtung wechselt.
So werden L293D-Halbbrücken-Treiber verwendet:
Demonstration / Was Sie erwartet
Wenn die Einrichtung abgeschlossen ist und der Code hochgeladen wurde, sollten Sie beobachten, dass der Motor für 3 Sekunden in eine Richtung dreht, für 2 Sekunden stoppt und dann für weitere 3 Sekunden in die entgegengesetzte Richtung dreht. Der Zustand des Motors wird im seriellen Monitor ausgegeben, wodurch die Aktionen bestätigt werden (im Video bei 12:00).
Häufige Fallstricke sind sicherzustellen, dass dem Motor die richtige Spannung zugeführt wird, und zu überprüfen, dass die Motoranschlüsse korrekt sind. Reagiert der Motor nicht, kontrollieren Sie noch einmal die Verkabelung und die Anschlüsse der Stromversorgung.
Video-Zeitstempel
- 00:00- Einleitung
- 02:30- Erläuterung der Verkabelung
- 05:00Code-Durchgang
- 10:00- Demonstration der Motorsteuerung
Dinge, die Sie vielleicht brauchen
-
AmazonKaufe L293D Motorsteuerungs-ICamzn.to
-
AliExpressKaufe L293D Motorsteuer-IC bei AliExpresss.click.aliexpress.com
Ressourcen & Referenzen
Noch keine Ressourcen vorhanden.
Dateien📁
Keine Dateien verfügbar.