Motoren - Rückwärts fahren

Erstellt von Frank Lüthjohann und Viktor Reichert
Benötigtes Vorwissen
Benötigtes Material
  • Aufbau vom Blatt Motoren ansteuern
Als PDF
PDF-Download
Arbeitsblatt
PDF-Download erweitert
Erweitertes Arbeitsblatt

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

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 wird HIGH geschaltet.

Je nachdem welcher Pin auf HIGH und welcher jetzt auf LOW geschaltet wird dreht sich der Motor rückwärts oder vorwärts

Tipp: Sprechende Namen

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

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 )