Dieses Arduino kompatible Motorschield, mit 4-Kanal L293D Schrittmotortreiber, wird einfach auf ein Arduinoboard aufgesteckt und erlaubt es bis zu 4 DC Motoren, 2 Schrittmotoren oder 2 Servomotoren anzusteuern. Als H-Brücke dient der leistungsfähige und zuverlässige L293D Chip der die Last verteilt. Dadurch kannst du problemlos DC-Motoren und Netzteile bis 24 Volt verwenden. Auch mit Ardublock lässt sich dieses Motortreiber Shield ganz einfach verwenden.
Auf dieser Seite zeige ich dir, wie du mit dem HW130 und Ardublock DC Motoren ansteuern kannst so wie bei diesem 2WD Roboter.
Anschluss des L293D Motortreiber Shield, PinOut
Das Shield selber wird direkt auf den Arduino gesteckt. Die Motoren werden an die Klemmen mit den Bezeichnungen M1,M2,M3,M4 angeschlossen. Damit die Motoren sich in die gleiche Richtung drehen gibt es drei Möglichkeiten:
- Anschluss (Kabel) am Shield tauschen
- Motoren am Chassis drehen
- Kabel an den Motoren tauschen
!!! Werden DC Motoren verwendet sollte immer eine externe Spannung verwendet werden. Dann muss der Jumper von PWR entfernt (abgezogen) werden. Sonst kann das Shield und der Arduino beschädigt werden!!!
Die folgenden PINs des Arduino dürfen nicht verwendet werden, da sie zum ansteuern der H-Brücken benötigt werden.
- PIN D 3: DC Motor #2 / Stepper #1 (activation/speed control)
- PIN D 5: DC Motor #3 / Stepper #2 (activation/speed control)
- PIN D 6: DC Motor #4 / Stepper #2 (activation/speed control)
- PIN D11: DC Motor #1 / Stepper #1 (activation/speed control)
Programm des L293D Motortreiber Shield mit Ardublock und Arduino
Zuerst muss über einen "Code im globalen Bereich einfügen" Block, die Bibliothek hinzugefügt werden und bestimmt werden an welchen "Klemmen" DC Motoren angeschlossen werden.
#include <AFMotor.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
Danach gibt es 4 grundlegende Befehle die über "code einfügen" zum steuern von DC Motoren verwendet werden. Vorwärts, Rückwarts, Stopp und Geschwindigkeit, die 0 muss durch eine Zahl von 1-4 ersetzt werden und den jeweiligen Motor anzusteuern. Die Funktion der Geschwindigkeit kann sowohl im SETUP (dauerhaft) wie in LOOP (variabel) gesetzt werden.
motor0.run(FORWARD);
motor0.run(BACKWARD);
motor0.run(RELEASE);
motor0.setSpeed(100);
Das Unterprogramm ist für die Funktion nicht erforderlich, hier habe ich nur alle wichtigen Codezeilen hinterlegt. In diesem Beispiel werden die Motoren 3 und 4 für zwei Sekunden mit einer Geschwindigkeit von 100 (max255) vorwärts gefahren, dann mit einer Geschwindigkeit von 200 rückwärtsgefahren und dann gestoppt.