Motoren - Rückwärts fahren
- Aufbau vom Blatt Motoren ansteuern
Beschreibung
Damit unser Roboter auf der Stelle wenden kann, wollen wir ihm beibringen rückwärts zu fahren. Dazu betrachten wir zuerst unsere verwendeten Motoren.
Der Motor hat zwei verschiedene Stromanschlüsse. Wenn du diese mit dem Plus- und Minuspol einer Batterie verbindest, dreht sich der Motor. Wenn du die Kabel vertauscht, so dreht der Motor in die andere Richtung!
Die Drehrichtung des Motors lässt sich durch das passende Anlegen der Spannung steuern. Wie können wir diesen “Kabeltausch” nun durch Programmcode umsetzen?

Motor mit Getriebe
Wir ersetzen den Ground (GND) Anschluss durch einen zweiten Pin -> beide Motorpins in einen Digital I/O Pin stecken (1 - 13).
Wir müssen zwei Variablen (
int
) für den Motor anlegen (vorwärts und rückwärts) und im void setup als OUTPUT einstellen.Den Ground ersetzen wir nun durch einen Pin der
LOW
geschaltet wird. Der andere Pin wirdHIGH
geschaltet.
Je nachdem welcher Pin auf HIGH
und welcher jetzt auf LOW
geschaltet
wird dreht sich der Motor rückwärts oder vorwärts
Gib deinen Variablen sprechende Namen! Man sollte an den Namen direkt die Funktion und Position des angeschlossenen Geräts erkennen. Zum Beispiel:
- guter Name: motorLinksVorwaerts oder motleftforward oder kurz: mlv
- schlechter Name: motor1
Verkabelung

Schaltplan
Code
In diesem Code wird der Motor wie im Schaltplan angeschlossen.
// Pin 11 bekommt den Namen mlv für motor links vorwärts.
// Pin 10 mlr für motor links rückwärts
int mlv = 11;
int mlr = 10;
void setup() {
pinMode(mlv, OUTPUT);
pinMode(mlr, OUTPUT);
}
void loop() {
// Vorwärts fahren
digitalWrite(mlv, HIGH);
digitalWrite(mlr, LOW);
delay(5000);
// Rückwärts fahren
digitalWrite(mlv, LOW);
digitalWrite(mlr, HIGH);
delay(5000);
}
Aufgaben
Beschreibe, wie sich der Motor im obigen Code verhält! Wie musst du die beiden Pins steuern, damit der Motor stoppt?
Der Motor dreht erst 5 Sekunden vorwärts und danach 5 Sekunden
rückwärts. Dies wieder holt er immer wieder. Damit der Motor sich nicht
mehr dreht müssen die Pins auf LOW
gestzt werden.
digitalWrite(mlv, LOW);
digitalWrite(mlr, LOW);
Was passiert, wenn wir beide Pins auf HIGH
stellen?
Wenn beide Pins auf HIGH
sind dreht sich der Motor nicht. Dies liegt
daran, dass an beiden Pins des Motors nun ca. 5V anlegen und damit kein
Spannungspotenzial existiert. Dadurch fließt kein Strom durch den Motor.
Der Motor besteht aus Motoranschlüssen, Motor, Getriebe, Antriebswelle. Notiere auf dem Bild, welcher Teil wie heißt.
TODO
Welche neuen Manöver sind jetzt mit deinem Roboter möglich? Setze einige davon um und präsentiere sie!
Es sind folgende Sachen möglich: rückwärts und vorwärts fahren, sich auf der Stelle drehen und links und rechts Kurven machen. TODO: Code Beispiel
Häufige Fragen und Probleme
Der Motor fährt vorwärts, wenn er rückwärts fahren soll und das Gleiche passiert anders herum.
Der Motor ist falsch herum angeschlossen. Einfach die Pin-Belegung der Motoren tauschen.
Das Material und dessen Inhalte sind - sofern nicht anders angegeben - lizenziert unter der Creative Commons Lizenz CC BY-NC-SA 4.0 (für den vollständigen Lizenztext siehe https://creativecommons.org/licenses/by-sa/4.0/legalcode )