Arduino-Boards können über ihre Ausgänge nur kleine Ströme (20 – 40 mA) bereitstellen. UmMotoren zu betreiben, die mehr Strom benötigen, muss deren Versorgung direkt von der Stromquelle erfolgen und das Ein- und Ausschalten über externe Schalter realisiert werden. Für solche Schaltvorgänge sind Transistoren wie der „TIP 120 STM“ geeignet, die über drei Anschlüsse: Gate (Tor), Drain (Auslass) und Source (Quelle) verfügen.

Im Anschlussplan unten versorgt der 9V Block sowohl den Arduino UNO als auch den Motor mit Strom. Zur Programmierung wird der Arduino über USB mit dem Computer verbunden.

Wie die Abbildung oben zeigt, ist der Minuspol des 9V Blocks mit GND, der Pluspol mit einem Pin des Motors und Vin am Arduino verbunden. Das Gate des Tansistors ist mit Pin13, Drain ist mit dem Motor und Source mit GND verbunden.
Zum Ausprobieren eignet sich das Programm „Blink“, das in der Arduino-Software als Beispiel geliefert wird. Immer wenn Pin13 auf „HIGH“ gesetzt wird, werden Drain und Source kurzgeschlossen: Strom fließt, der Motor läuft an.
Genügt es nicht, Motoren nur an- und auszuschalten, sondern soll auch auf die Drehrichtung Einfluss genommen werden, wird ein Motorentreiber benötigt. Bewährt hat sich der L293D, mit zwei H-Brücken, die das Steuern von Motoren ermöglichen.

Der L293D kann dauerhaft bis zu 600 mA pro Kanal zur Verfügung stellen, was auch für leistungshungrige Motoren hinreichend sein sollte. Die mittleren 4 Pins (4, 5 und 12, 13) sind aus kühlungstechnischen Gründen miteinander verbunden, wobei einer in Kontakt mit GND stehen muss ist. Die übrige Verdrahtung kann an der folgenden Übersicht und den anschließenden Erklärungen nachvollzogen werden:

Der 9V Block versorgt das Arduino-Board und den L293D mit Strom. Dazu muss der Batterie-Pluspol mit Pin 8 am L293D und mit Vin am Arduino, der Batterie-Minuspol mit einem der Pins 4, 5, 12 oder 13 am L293D und mit GND am Arduino verbunden sein. Pin 16 des L293D wird mit dem 5V-Pin am Arduino zusammengeführt. In diesem Beispiel dienen die Pins 6, 9, 10 und 11 des Arduino als Steuerleitungen. Sie sind verbunden (in der genannten Reihenfolge) mit den Pins 2, 7, 15 und 10 am L293D.

Und so sieht das fertig bestückte Fahrzeug aus:

Als Untersatz dient ein 9 x 14 cm großes Sperrholzbrettchen, das Platz bietet für die zwei Getriebemotoren und das Breadboard. Arduino Nano und Motorentreiber können dort eingesteckt und wie oben gezeigt verdrahtet werden.
In dieser Zusammenstellung können zwei Motoren vollumfänglich gesteuert werden. Das heißt, sie können gestartet und gestoppt werden sowie vor- und rückwärts laufen.
Eine Tischtennisballhälfte an der Unterseite hält das Fahrzeug in der Waage.

Wie das Fahrzeug programmiert werden kann zeigt der folgende Beispielcode. Mit ihm fährt das Fahrzeug ein Stück geradeaus, dreht auf der Stelle und kommt zum Ausgangspunkt zurück.
void setup() {
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
analogWrite(6, 150);
digitalWrite(9, LOW);
analogWrite(10, 150);
digitalWrite(11, LOW);
delay(3000); //beide Motoren 3s gleichsinnig mit regulierten Drehzahlen
digitalWrite(6, LOW);
digitalWrite(10, LOW);
delay(500); // beide Motoren stoppen kurz
analogWrite(9, 150);
analogWrite(10, 150);
delay(400); // Motoren drehen gegensinnig (auf der Stelle wenden)
digitalWrite(9, LOW);
digitalWrite(10, LOW);
delay(500); //beide Motoren stoppen kurz
analogWrite(6, 150);
analogWrite(10, 150);
delay(3000); //beide Motoren 3s gleichsinnig mit regulierten Drehzahlen
digitalWrite(6, LOW);
digitalWrite(10, LOW);
}
void loop() {
}
Der Baustein „L293D“ und der Transistor TIP 120 STM können kostengünstig bei der Firma Reichelt erworben werden.
Nano, Reifen inkl. Getriebemotor, Breadboard, Steckbrücken und Dupont / Jumper Kabel können bei Internetanbietern wie Roboter-Bausatz- oder Christians Technikshop gefunden werden.