Durstige Motoren

Das Arduino-Board kann über seine Ausgänge nur kleine Ströme (20 – 40 mA) bereitstellen. Sollen Motoren angeschlossen werden, die mehr Strom benötigen, muss die Versorgung direkt von der Stromquelle erfolgen und das Ein- und Ausschalten über externe Schalter realisiert werden. Für solche Schaltvorgänge ist der Transistor „TIP 120 STM“ geeignet. Das Schalten geht über drei Anschlüsse: Gate (Tor), Drain (Auslass) und Source (Quelle).

Im Anschlussplan unten versorgt der 9V Block sowohl das Board als auch den Motor mit Strom. Der Arduino muss also nur zur Programmierung mit dem Computer verbunden sein. 

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 dem zwei Motoren gesteuert werden können. Er kann dauerhaft bis zu 600 mA pro Kanal zur Verfügung stellen.

Eine Alternative zum L293D ist ein komplett bestücktes Motorentreiber-Modul, das schon für wenige Cent mehr zu haben ist.


Und so könnte das fertige bestückte Robotfahrzeug aussehen:

Als Untersatz dient ein 9 x 14 cm großes Sperrholzbrettchen, das Platz bietet für zwei Getriebemotoren mit den dazugehörigen Rädern und ein Breadboard. Arduino Nano und Motorentreiber können dort mit ihren Stiften eingesteckt werden.


Eine Tischtennisballhälfte an der Unterseite hält das Fahrzeug in der Waage. 

Das nebenstehende Schaltbild soll  im Zusammenhang mit den Beschriftungen auf den jeweiligen Platinen und diesen Beschreibungen Klarheit schaffen, wie die Anschlüsse zu legen sind: D11 und D10 werden mit B-1A und B-1B, D9 und D6 mit A-1A und A-1B des Motorentreibers verbunden. Vereinfacht kann das so gelesen werden, dass Motor A über D10 und 11, Motor B über D9 und D6 programmiert wird.

Zur Stromversorgung wird der Pluspol des 9V Blocks an Vin des Nanos und VCC des Motorentreibers angeschlossen, der Minuspol mit GND am Nano. Der Motorentreiber ist über einen zweiten Anschluss am Nano mit GND verbunden.

Für die Zuleitungen zu den Motoren gibt es Schraubverbindungen, die mit Motor A und B gekennzeichnet sind.

Da die Stifte des Motorentreibers auf der Oberseite herausragen, betrachtet man ihn in den Zeichnungen von der Rückseite, sodass die Beschriftungen so nicht gelesen werden können.

Programmierbeispiel:

Ein „HIGH“ zusammen mit dem Befehl „digitalWrite“ macht einen Pin zum Pluspol, ein „LOW“ zum Minuspol. Mit zwei programmierbaren Pins können Motoren sowohl an- und abgeschaltet als auch für einen Vor- oder Rücklauf programmiert werden.

Die Drehzahlen der Motoren können mit dem Befehl „analogWrite“ beeinflusst werden. Die Werte können zwischen 0 (Stillstand) und 255 (höchstmögliche Drehzahl) variieren.

Mit dem nachfolgenden Programmierung fährt das Fahrzeug mit reduzierter Geschwindigkeit ein Stück weit geradeaus, stoppt, vollführt eine180-Grad-Drehung auf der Stelle, stoppt erneut, fährt dann zurück und hält an.

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, Motor-Treiber (L9110), Roboter / Auto Reifen inkl. Getriebemotor, Prototyping Breadboard, Steckbrücken und Dupont / Jumper Kabel können hier mit Hilfe der Suchen-Funktion gefunden werden.