
Da das Arduino-Board nur sehr kleine Ströme pro DigitalOut zulässt, können so nur sehr kleine Motoren (z.B. Vibrationsmotoren aus Handys) gesteuert werden.
Um größere Motoren zu steuern, gibt es eine Reihe von Optionen:
Stepper-Motoren:
DC-Motoren
- Motorsteuerung mit einem H-Bridge IC
- Motorsteuerung mit einem Schaltrelais
- Motorsteuerung mit einem Transistor
- Motorsteuerung mit einer MOS-FET Brücke
Weiter im Text: Das erste Beispiel zeigt den einfachsten Fall, wie ein Motor an das Arduino angeschlossen werden kann. Die Diode schützt das Arduino-Board vor Induktionsströmen. Der Motor kann sich nur in eine Richtung und mit einer Geschwindigkeit drehen. Zum Testen lässt sich der Blink-Code verwenden (Arduino>File>Examples>Digital>Blink).
Im zweiten Beispiel ist der Motor an zwei Outputs angeschlossen. Damit lässt sich der Motor in beide Richtungen drehen. Die Geschwindigkeit lässt sich über die PWM-Kanäle regulieren. Bei dieser Schaltung sind vier Dioden nötig. In der Tabelle sind die möglichen Schaltzustände aufgeführt. LOW bedeutet GND, HIGH bedeutet 5V+.
Digital 2 | Digital 3 | Motor |
---|---|---|
LOW | LOW | Stop |
LOW | HIGH | links |
HIGH | LOW | rechts |
HIGH | HIGH | Stop |
LOW | analogWrite(Pin, 122); | langsam links |
HIGH | analogWrite(Pin, 122); | langsam rechts |

Der Code zum Testen sieht so aus:
int motorPin1=2; int motorPin2=3; // PWM void setup(){ pinMode(motorPin1,OUTPUT); pinMode(motorPin2,OUTPUT); } void motorStop(){ digitalWrite(motorPin1,LOW); digitalWrite(motorPin2,LOW); delay(500); } void loop(){ motorStop(); // Motor Stop digitalWrite(motorPin1,HIGH); // Motor Vor digitalWrite(motorPin2,LOW); delay(1000); motorStop(); // Motor Stop digitalWrite(motorPin1,LOW); // Motor Rueck digitalWrite(motorPin2,HIGH); delay(1000); motorStop(); // Motor Stop digitalWrite(motorPin1, LOW); // Motor langsam zu schnell for (int i=0; i<255; i++){ analogWrite(motorPin2, i); delay(20); } motorStop(); // Motor Stop }
Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!
- Die beliebtesten Arduino-Projekte von StartHardware
- Inklusive Schaltplan, Beschreibung und Code
- Arduino-Schnellstart-Kapitel
- Kompakter Programmierkurs
Also was ich nicht ganz verstehe ist das 2. Schaltbild. Meiner Meinung nach sollte das einen Kurzschluss geben da ja die 5V doch direkt mit GND verbunden sind oder nicht? Wie kommt es dann, dass der Motor sich bewegt. So weit wie ich informiert bin sollte der Strom doch den Weg des kleinsten Widerstandes gehen und der wäre ja dann der direkte weg zum GND?!
@RALF : Du schreibst:
„Meiner Meinung nach soll man wenn man keine Ahnung hat einfach die Finger davon lassen. “
Das gilt auch für das Kopieren von Sourcecode. Wer noch nicht mal einfache Syntaxfehler beheben kann verdient halt nun mal keine Eins…
Meiner Meinung nach soll man wenn man keine Ahnung hat einfach die Finger davon lassen. ich sitze hier in der Schule und will die Kacke hier kopieren damit ich eine °°°°°°°°°°°°° Eins bekomm.
ALSO KOPIERE ICH DES HIER UND WAS WIRD ANGEZEIGT? EINE FEHLERMELDUNG!!! Anscheinend wird ein IT nicht erklärt.
UND SOWAS DANN INS NETZ STELLEN? MANN WAS SOLL DAS?
Tut mir leid für den falschen Ausdruck.
Ich brauche eine Regelung.
Kannst du mir einen speziellen mosfet empfehlen?
Hallo, was benötige ich um einen Gleichstrommotor 36V und ungefähr 27A mit dem arduino zu steuern?
LG
Danke!
Hallo,
natürlich kann man mit einem Arduino auch Waschmaschinenmotoren o.ä. steuern. Im einfachsten Fall durch ein Relais (Frage mal Tante Google nach „arduino relais kaufen“). Das „stufenlose“ Regeln von großen Wechselstrommotoren ist ein Thema für Experten. Dem Laien rate ich dringend davon ab, irgendwelche wilden Schaltungen mit 220V zusammenzubasteln. Da können sonst auch mal schnell die 220V am Arduino anliegen. Netzspannung kann tödlich sein!
Grüße
Thomas
Hi, gibt es per Arduino gar keine Möglichkeit, einen größeren Motor, z.B. Einer Waschmaschine, anzusteuern? Eventuell durch Anbauteile? Sorry, bin ein Elektronik-Nobody…
Gruß
Sirius
Natürlich ist das möglich einen Schrittmotor so anzusteuern, dass er 1 Umdrehung/min macht: Wenn der Motor 200 Schritte/U macht, dann muss man ihn alle 5ms einen Schritt machen lassen. Dafür ist er ein Schrittmotor.
Natürlich ist das möglich einen Schrittmotor so anzusteuern, dass er 1 U/min macht: Wenn der Motor 200 Schritte/U macht, dann muss man ihn alle 5ms einen Schritt machen lassen. Dafür ist er ein Schrittmotor.