Lektion 95: Verwendung eines L293D 4 DC Motor Shields | Arduino Schritt-für-Schritt Kurs
In diesem Tutorial werden wir untersuchen, wie man vier Gleichstrommotoren mit dem L293D Motor Shield und Arduino steuert. Dieses Setup ist besonders nützlich für Robotikanwendungen, wie den Bau eines Roboterautos, bei dem eine präzise Motorsteuerung wichtig ist. Am Ende dieser Lektion werden Sie ein funktionierendes Modell haben, das mehrere Motoren gleichzeitig betreiben kann.

Das L293D-Motorenschild vereinfacht den Verkabelungsprozess und ermöglicht es Ihnen, die Motoren mit nur wenigen Verbindungen zu steuern. Sie werden lernen, wie Sie das Schild mit dem Arduino verbinden, den Code einrichten und Motorsteuerbefehle effektiv ausführen. Für eine visuellere Erklärung können Sie im Video zu bestimmten Zeitstempeln auf Verkabelungs- und Codierungsdetails verweisen (im Video bei mm:ss).
Hardware erklärt
Die Hauptkomponente dieses Projekts ist das L293D Motor Shield, das ein quadruples Halb-H-Brücken-Motortreiber ist. Das bedeutet, dass es zwei Motoren in beide Richtungen steuern kann, was eine vollständige Kontrolle über die Motorrotation ermöglicht. Das Shield wird direkt mit dem Arduino verbunden, wodurch die Verwaltung von Strom und Steuersignalen ohne unordentliche Verkabelung einfach ist.
Jeder L293D-Chip kann bis zu 600 mA Strom pro Kanal verarbeiten und arbeitet bei Spannungen von 4,5 V bis 36 V. Dieser Bereich macht ihn geeignet für eine Vielzahl von Gleichstrommotoren. Darüber hinaus verfügt das Shield über einen Jumper, der es ermöglicht, sowohl die Motoren als auch den Arduino von einer einzigen externen Stromquelle zu versorgen.
Datenblattdetails
| Hersteller | Texas Instruments |
|---|---|
| Teilenummer | L293D |
| Logik/IO-Spannung | 5 V |
| Versorgungsspannung | 4,5 - 36 V |
| Ausgangsstrom (pro Kanal) | 600 mA |
| Spitzenstrom (pro Kanal) | 1.2 A |
| PWM-Frequenzanleitung | 1 kHz - 20 kHz |
| Eingangslogikschwellen | 2 V min (hoch), 0,8 V max (niedrig) |
| Spannungsabfall / RDS(on)/ Sättigung | 1,5 V max |
| Thermische Grenzen | 150 °C |
| Paket | 16-DIP |
| Hinweise / Varianten | Duale H-Brücken-Konfiguration |
- Stellen Sie sicher, dass die Motoren 600 mA nicht überschreiten, um Schäden zu verhindern.
- Verwenden Sie ausreichende Kühlkörper für Hochstromanwendungen.
- Schließen Sie externe Stromversorgung an, bevor Sie das Arduino einschalten.
- Überprüfen Sie die Jumper-Platzierung zur Stromversorgung des Shields und des Arduino.
- Teste die Motorrichtung, indem du die Verbindungen bei Bedarf tauschst.
Verdrahtungsanweisungen

Beginnen Sie damit, das L293D-Motor-Shield an Ihr Arduino Uno oder Mega anzuschließen. Richten Sie die Pins des Shields mit den Headern des Arduino aus und drücken Sie fest nach unten. Schließen Sie als Nächstes Ihre Gleichstrommotoren an die mit gekennzeichneten Anschlüsse an.M1,M2,M3, undM4auf dem Schild. Jeder Motor benötigt zwei Anschlüsse, daher stellen Sie sicher, dass Sie diese korrekt anschließen, um die richtige Drehrichtung zu gewährleisten.
Für die Stromversorgung schließen Sie eine externe Batterie oder ein externes Netzteil an die Stromanschlüsse des Shields an und stellen Sie sicher, dass die Spannung im Bereich von 4,5 V bis 36 V liegt. Vergessen Sie nicht, den Jumper auf dem Shield zu verbinden, um den Stromfluss zum Arduino zu ermöglichen. Schließen Sie schließlich die Masse des Netzteils an den Massepin des Arduinos an, um den Stromkreis zu vervollständigen.
Installieren Sie die erforderliche Bibliothek
Klicken Sie auf das Bibliothekssymbol und suchen Sie nach:Adafruit Motor Sheild Libraryund klicken Sie auf Installieren, um es zu installieren.
Codebeispiele und Anleitung
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);Im Code initialisieren wir vier Motorobjekte:motor1,motor2,motor3, undmotor4Jeder Motor wird einer Kanalnummer zugeordnet, die den Anschlussklemmen des Motor Shields entspricht. Dies ermöglicht es uns, jeden Motor einzeln zu steuern.
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Robojax L293D Example");
}Diesetup()Die Funktion initialisiert die serielle Kommunikation, die es uns ermöglicht, Nachrichten vom Arduino IDE zu senden und zu empfangen. Dies ist nützlich für das Debuggen und Überwachen des Motorsteuerungsprozesses.
motor1.setSpeed(speed(50)); //set speed for motor 1 at 50%
motor1.run(FORWARD); //send motor 1 to Forward rotationUm die Motoren zu steuern, stellen wir die Geschwindigkeit ein, indem wir diesetSpeed()Methode, die einen Wert zwischen 0 und 255 annimmt. Dierun()Die Methode startet dann den Motor in die angegebene Richtung, wie zum BeispielFORWARDoderBACKWARDDie Geschwindigkeit kann je nach Bedarf dynamisch angepasst werden.
Demonstration / Was zu erwarten ist
Sobald alles verkabelt und der Code hochgeladen ist, sollten die Motoren entsprechend den Befehlen im Code rotieren. Zunächst wird ein Motor eingeschaltet, gefolgt von den anderen in der Reihenfolge, wobei jeder für eine festgelegte Dauer läuft. Wenn die Motoren nicht wie erwartet funktionieren, überprüfen Sie Ihre Verkabelung, stellen Sie sicher, dass der Jumper angeschlossen ist, und vergewissern Sie sich, dass die Stromversorgung ausreichend ist (im Video bei mm:ss).
Video-Zeiten
- 00:00 Einführung
- 03:00 Datenblatt für L293D
- 03:56 Verkabelung erklärt
- 07:21 Code und Bibliothek
- 13:51 Demonstration zur Steuerung von 4 Motoren
/*
* Lesson 95: Control 4 DC Motors for a Smart Car using a Motor Shield
* This code works with Arduino UNO and Arduino Mega.
* Wiring diagram and how to wire and connect the power supply is shown in the video.
Watch full video instruction: https://youtu.be/0XihwdulmDQ
* Download this code from: http://robojax.com
*
* Written by Ahmad Shamshiri for Robojax.com on Jan 09, 2022
* in Ajax, Ontario, Canada
This video is part of an Arduino Step by Step Course which starts here: https://youtu.be/-6qSrDUA5a8
If you found this tutorial helpful, please support me so I can continue creating content like this
and make a donation using PayPal http://robojax.com/L/?id=64
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
* Library location: https://github.com/adafruit/Adafruit-Motor-Shield-library
Adafruit Motor shield library
// copyright Adafruit Industries LLC, 2009
// this code is public domain, enjoy!
*/
#include <AFMotor.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Robojax L293D Example");
}
void loop() {
motor1.setSpeed( speed(50) ); //set speed for motor 1 at 50%
motor1.run(FORWARD);//send motor 1 to Foarward rotation
delay(2000);//wait for 2 seconds
motor2.setSpeed( speed(100) );//set speed for motor 2 at 100%
motor2.run(BACKWARD);//send motor 2 to Foarward rotation
delay(2000);
motor3.setSpeed( speed(70) );
motor3.run(FORWARD);
delay(2000);
motor4.setSpeed( speed(90) );
motor4.run(FORWARD);
delay(2000);
motor1.run(BRAKE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
delay(2000);
motor1.setSpeed(speed(100));
motor1.run(BACKWARD);
delay(2000);
motor1.run(RELEASE);
delay(1000);
}
/*
* speed percent to speed converter
* receives value between 0 to 100 and converts it to value between
* 0 to 255 which are 8 bits Arduino PWM value
* www.Robojax.com
Watch full video instruction: https://youtu.be/0XihwdulmDQ
*/
int speed(int percent)
{
return map(percent, 0, 100, 0, 255);
}
Dinge, die Sie vielleicht brauchen
-
Amazon
-
Amazon
-
eBay
-
AliExpressKaufen Sie das L293D-Motor-Shield von AliExpress.s.click.aliexpress.com
Ressourcen & Referenzen
-
Extern
Dateien📁
Keine Dateien verfügbar.