Motoren - Vorwärts fahren

Erstellt von Viktor Reichert
Benötigtes Material
  • Arduino Uno
  • USB-Kabel für den Arduino
  • 2x Motor (N20 DC 6V 100RPM/80RPM)
  • 2x Motorhalterung
  • 4x Schraube
  • Holzbrett
Als PDF
PDF-Download
Arbeitsblatt
PDF-Download erweitert
Erweitertes Arbeitsblatt

Beschreibung

Der Arduino ist ein Mikrocontroller, mit dem man verschiedene technische Geräte bauen kann. Wir wollen zunächst gemeinsam einen fahrenden Roboter bauen.

Befestige dazu zwei Motoren mithilfe der Motorhalterungen und Schrauben an ein Holzbrett (siehe Foto). Bringe dann die Reifen an den Achsen an.
Es gibt hierzu auch eine genaue Fotoanleitung (Arbeitsschritte_Roboterfahrzeug_Fotoanleitung.pdf). # Verkabelung

ArduinoMotoren
GNDKabel 1 des linken Motors
GNDKabel 1 des rechten Motors
12Kabel 2 des linken Motors
13Kabel 2 des rechten Motors
Schaltbild

Code

// Wir geben den Pins mit Motoren Namen.
int motor_links  = 13;
int motor_rechts = 12;

// Dieser Code wird einmal beim Start des Arduinos ausgeführt.
void setup() {
  // Wir teilen dem Arduino mit, dass aus den Motorpins Strom kommen soll.
  pinMode(motor_links, OUTPUT);
  pinMode(motor_rechts, OUTPUT);
}

// Dieser Code wird immer wieder hintereinander ausgeführt.
void loop() {
  // Gib beiden Motoren Strom.
  digitalWrite(motor_links, HIGH);
  digitalWrite(motor_rechts, HIGH);

  // Warte 3 Sekunden bis zur Ausführung der nächsten Befehle.
  // ACHTUNG: Die Motoren haben weiterhin Strom,
  //          bis dem Arduino ein gegenteiliger Befehl gegeben wird.
  delay(3000);

  // Gib beiden Motoren KEINEN Strom.
  digitalWrite(motor_links, LOW);
  digitalWrite(motor_rechts, LOW);

  // Warte.
  delay(1000);
}

Aufgaben

Beschreibe, wie die Motoren sich verhalten, wenn du den obigen Code ausführst?

Der Roboter fährt drei Sekunden gerade aus und bleibt dann eine Sekunde lang stehen.

Was musst du am Code ändern, damit der Roboter länger stoppt?

Beim zweiten delay muss eine größere Zahl in die Klammern eingetragen werden.

Was passiert, wenn du bei einem Motor den GND und Zahlen-Pin vertauscht?

Der Motor wechselt die Fahrtrichtung.

Wie kannst du das Fahrzeug zuerst geradeaus und dann eine Kurve fahren lassen? Probiere deine Idee aus!

Es gibt verschiedene Möglichkeiten das zu lösen

  • Ändere die Zeile digitalWrite(motor\_right, LOW); zu digitalWrite(motor\_right, HIGH);
  • Oder ändere die Zeile digitalWrite(motor\_right, LOW); zu digitalWrite(motor\_left, HIGH);

Kannst du Dein Fahrzeug so programmieren, dass es 2m vorwärtsfährt, eine Kurve fährt und dann genau am Startpunkt wieder ankommt?

Ändere den Code, damit er eine Kurve fährt (s. o.) und passe die Zeit vom letzten delay an, sodass eine 180° Kurve gefahren wird. Passe die Zeit vom ersten ‘delay’ an, sodass 2 Meter gefahren werden.

Denke dir einen interessanten Parcours aus und programmiere diesen!

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 )