Quellcode zur Arduino DC-Motorsteuerung (Projekt 29)

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

In diesem Artikel wird ergänzend zum Projekt 29 [[1]] der Quellcode für die Ansteuerung eines DC-Motors mithilfe einer H-Brücke aufgezeigt.

int motor1_A=11;
int motor1_B=10;
int motor1_Speed=3;
 
  
void setup()
{
  pinMode(motor1_A,OUTPUT);
  pinMode(motor1_B,OUTPUT);
}
  
void loop(){
  // motor1 1. Drehrichtung
 for (int i=0; i<250; i+=10){
    digitalWrite(motor1_A,HIGH); // A = HIGH und B = LOW der Motor dreht sich nach rechts
    digitalWrite(motor1_B,LOW);
    analogWrite(motor1_Speed,i); // Motorgeschwindigkeit (max. ist der Wert 255 möglich)
    delay(500);
  }
  

  // motor1 2. Drehrichtung
   for (int i=0; i<250; i+=10){
    digitalWrite(motor1_A,LOW); // A = LOW and B = HIGH der Motor dreht sich nach links
    digitalWrite(motor1_B,HIGH);
    analogWrite(motor1_Speed,i); 
    delay(500);
  }
}

Wie aus dem Quellcode zu entnehmen ist, werden zuerst die Pins gewählt, welche den Motor über die H-Brücke ansteuern sollen. Dabei gibt die Variable "motor1_A" die Drehrichtung nach rechts und "motor1_B" die Drehrichtung nach links an. Im "void setup()" werden ebendiese Pins als Outputs deklariert. Der Pin "motor1_Speed" muss nicht als Ausgabepin deklariert werden, da dieser als ein Quasi-Analogausgang dient (genauer PWM). In der "void loop()" wird mithilfe der for-Schleife entsprechend eine Richtung auf "HIGH" und die andere auf "LOW" gesetzt, während die Mototgeschwindigkeit in 10ner Schritten inkrementiert. Dadurch ist die Drehbewegung des Motors gut zu beobachten.