|
Gleichstrommotor ansteuern
Ein Gleichstrommotor, auch
DC Motor genannt (DC = Direct Current = Gleichstrom), kann nicht
einfach an die stromschwachen Ausgänge eines Arduino gehängt
werden. Abhilfe schafft hier ein sogenanntes Motor-Shield,
das Du Dir hier besorgen kannst.
An dieses Motor-Shield kannst Du gleich zwei Gleichstrommotoren
anschließen. Arduino kann jeden dieser Motoren dann unabhängig
voneinander in seiner Drehzahl und Drehrichtung steuern.
Zusätzlich kann man noch den Stromverbrauch jedes Motors messen.
Mit so einem Shield und einem Arduino kannst Du Roboter bauen, die
auf zwei Rädern oder zwei Ketten herumfahren und ihre Umwelt
erkennen, ähnlich diesem hier von der Mikrocontrollerspielwiese:
Kleines Experiment:
Ein Gleichstrommotor wird an die Klemmen + und - für Motor A
angeschlossen.
Er soll sich nacheinander langsam, mittel und schnell drehen. Erst
in linksrum danach rechtsrum.
Betrachten wir einmal die Steuer-Pins, mit der Arduino das Shield
steuert:
Shield-Funktion |
Pins für
Motor A |
Pins
für Motor B |
Drehrichtung |
Digital_12 |
Digital_13 |
PWM |
Digital_3 |
Digital_11 |
Bremsen
(HIGH=bremsen)
|
Digital_9 |
Digital_8 |
Strommessung |
Analog_0 |
Analog_1 |
Damit ergibt sich folgender Programmcode:
void setup()
{
pinMode(12, OUTPUT); //
Drehrichtung
pinMode( 3, OUTPUT); // PWM
pinMode( 9,
OUTPUT); // Bremse
digitalWrite(9, LOW); // nicht
bremsen
}
void loop()
{
digitalWrite(12, LOW); // linksrum
analogWrite(3,
50); // langsames Drehen
delay(5000);
analogWrite(3, 150);
// mittleres Drehen
delay(5000);
analogWrite(3, 250);
// schnelles Drehen
delay(5000);
analogWrite(3,
0); // kein Drehen
delay(5000);
digitalWrite(12, HIGH); // rechtsrum
analogWrite(3,
50); // langsames Drehen
delay(5000);
analogWrite(3, 150);
// mittleres Drehen
delay(5000);
analogWrite(3, 250);
// schnelles Drehen
delay(5000);
analogWrite(3,
0); // kein Drehen
delay(5000);
}
Anstelle von zwei Gleichstrommotoren
kann man auch einen Schrittmotor an das Shield anschließen.
Doch dazu später.
|