← Alle Bauteile

DC-Motor mit L298N Treiber

DC-Motor mit L298N Treiber

Aktuator

Der L298N ist ein Motortreiber-Board fuer bis zu 2 DC-Motoren. Er verstaerkt die schwachen Arduino-Signale zu kraeftigen Motorstroemen. Man kann Richtung und Geschwindigkeit steuern.

Tipps: Den Motor NIEMALS direkt an den Arduino anschliessen — er braucht zu viel Strom und kann den Arduino zerstoeren! Immer den L298N oder einen aehnlichen Treiber dazwischenschalten. Externe Stromversorgung (Batterie/Netzteil) fuer die Motoren verwenden.
Frag den Lernhelfer

Technische Daten

KategorieBewegung/Motor
SchnittstelleDigital + PWM
PinbelegungENA, IN1, IN2, IN3, IN4, ENB, Motor A (+/-), Motor B (+/-), VCC, GND, 5V
Anzahl Pins11
MessbereichDrehzahl variabel (PWM-gesteuert)
Betriebsspannung5.0V – 35.0V
Stromverbrauch2000.0 mA
DatenblattPDF oeffnen

Anschluss

Arduino Uno R3

Pins: D5=ENA (PWM Geschwindigkeit), D6=IN1 (Richtung), D7=IN2 (Richtung), Extern=Motorspannung

Hinweise: Externe Stromversorgung (6-12V) fuer Motoren! GND von Arduino und Motorversorgung verbinden!

Codebeispiele

Motor steuern: Richtung und Geschwindigkeit Mittel

Der L298N steuert die Richtung ueber IN1/IN2 und die Geschwindigkeit ueber ENA (PWM). IN1=HIGH + IN2=LOW = vorwaerts, IN1=LOW + IN2=HIGH = rueckwaerts. Beide LOW = Stopp.

Benoetigte Bibliotheken: Keine (nur Arduino-Standardfunktionen)

// ============================================
// DC-Motor mit L298N: Richtung + Geschwindigkeit
// ============================================
// Anschluss Arduino -> L298N:
//   D5 = ENA (Geschwindigkeit, PWM)
//   D6 = IN1 (Richtung)
//   D7 = IN2 (Richtung)
// Motor an OUT1/OUT2 des L298N
// Externe Stromversorgung (6-12V) am L298N!
// GND von Arduino und L298N verbinden!

#define ENA_PIN 5    // Geschwindigkeit (PWM)
#define IN1_PIN 6    // Richtung Kanal 1
#define IN2_PIN 7    // Richtung Kanal 2

void setup() {
  pinMode(ENA_PIN, OUTPUT);
  pinMode(IN1_PIN, OUTPUT);
  pinMode(IN2_PIN, OUTPUT);
  Serial.begin(9600);
  Serial.println("Motor-Demo mit L298N");
}

// Hilfsfunktion: Motor vorwaerts
void motorVorwaerts(int geschwindigkeit) {
  digitalWrite(IN1_PIN, HIGH);
  digitalWrite(IN2_PIN, LOW);
  analogWrite(ENA_PIN, geschwindigkeit);  // 0-255
}

// Hilfsfunktion: Motor rueckwaerts
void motorRueckwaerts(int geschwindigkeit) {
  digitalWrite(IN1_PIN, LOW);
  digitalWrite(IN2_PIN, HIGH);
  analogWrite(ENA_PIN, geschwindigkeit);
}

// Hilfsfunktion: Motor stoppen
void motorStopp() {
  digitalWrite(IN1_PIN, LOW);
  digitalWrite(IN2_PIN, LOW);
  analogWrite(ENA_PIN, 0);
}

void loop() {
  // Vorwaerts mit halber Geschwindigkeit
  Serial.println("Vorwaerts (50%)");
  motorVorwaerts(128);
  delay(2000);

  // Vorwaerts mit voller Geschwindigkeit
  Serial.println("Vorwaerts (100%)");
  motorVorwaerts(255);
  delay(2000);

  // Stopp
  Serial.println("Stopp");
  motorStopp();
  delay(1000);

  // Rueckwaerts
  Serial.println("Rueckwaerts (75%)");
  motorRueckwaerts(192);
  delay(2000);

  // Stopp
  Serial.println("Stopp");
  motorStopp();
  delay(2000);
}

Probleme mit DC-Motor mit L298N Treiber?

KI-Lernhelfer fragen