DC-Motor mit Propeller am Arduino ansteuern
FunduinoZuletzt aktualisiert am
Geschwindigkeit und Drehrichtung eines Gleichstrommotors über eine H-Brücke steuern
Warum ein Motor eine H-Brücke braucht
Anschlüsse des Moduls
Richtung und Geschwindigkeit steuern
Motor mit voller Geschwindigkeit nach rechts drehen
int MotorA = 10; // Pin INA am digitalen PWM-Pin 10
int MotorB = 11; // Pin INB am digitalen PWM-Pin 11
void setup()
{
pinMode(MotorA, OUTPUT); // Pin 10 (Motor-A) als Ausgang definieren
pinMode(MotorB, OUTPUT); // Pin 11 (Motor-B) als Ausgang definieren
}
void loop()
{
// Beide Werte liegen zwischen 0 und 255. Je größer der Unterschied zwischen
// Motor-A und Motor-B, desto schneller dreht der Motor.
analogWrite(MotorA, 0);
analogWrite(MotorB, 255);
}Erweiterung: Geschwindigkeit per Drehregler
Geschwindigkeit über ein Potentiometer regeln
int MotorA = 10; // Pin INA am digitalen PWM-Pin 10
int MotorB = 11; // Pin INB am digitalen PWM-Pin 11
// Das Wort "eingang" steht jetzt für A0. Dort hängt das Signal des Potentiometers.
int eingang = A0;
int sensorwert = 0; // Variable für den Sensorwert, Startwert 0
int Geschwindigkeit = 0; // Variable für die Geschwindigkeit, Startwert 0
void setup()
{
pinMode(MotorA, OUTPUT); // Pin 10 (Motor-A) als Ausgang definieren
pinMode(MotorB, OUTPUT); // Pin 11 (Motor-B) als Ausgang definieren
}
void loop()
{
// Die Spannung am Drehregler wird ausgelesen und als Zahl zwischen 0 und 1023
// unter "sensorwert" gespeichert.
sensorwert = analogRead(eingang);
// Der map-Befehl wandelt den Bereich 0 bis 1023 in 0 bis 255 um. Damit lässt
// sich der Wert direkt an analogWrite weitergeben.
Geschwindigkeit = map(sensorwert, 0, 1023, 0, 255);
// Dieser Wert bleibt bei 0 - die Änderung von MotorB regelt die Geschwindigkeit.
analogWrite(MotorA, 0);
analogWrite(MotorB, Geschwindigkeit);
}Anleitung bewerten