Zum Inhalt springen
Arduino Motor direkt

Motorsteuerung direkt per Arduino

    Simple Motorsteuerung

    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


    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).


    Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


    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 2Digital 3Motor
    LOWLOWStop
    LOWHIGHlinks
    HIGHLOWrechts
    HIGHHIGHStop
    LOWanalogWrite(Pin, 122);langsam links
    HIGHanalogWrite(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