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


    66 Gedanken zu „Motorsteuerung direkt per Arduino“

    1. 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?!

    2. @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…

    3. 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?

    4. Tut mir leid für den falschen Ausdruck.
      Ich brauche eine Regelung.
      Kannst du mir einen speziellen mosfet empfehlen?

    5. Hallo, was benötige ich um einen Gleichstrommotor 36V und ungefähr 27A mit dem arduino zu steuern?

      LG

    Die Kommentarfunktion ist deaktiviert.