Inhaltsverzeichnis
Alle Produkte, die du für diese Anleitung benötigst
Motoren mit der H-Brücke L298N und einem Arduino Mikrocontroller ansteuern
Übersicht
In dieser Anleitung möchten wir zwei Gleichstrommotoren über die L298N H-Brücke ansteuern.
Eine H-Brücke besteht aus vier Schaltern (oft Transistoren), die in einer H-förmigen Anordnung verbunden sind.
Diese vier Schalter können so gestellt werden, dass die sogenannte Last (z.B. Motor) in beiden möglichen Polaritäten betrieben werden kann. Zudem kann die Stromversorgung ganz getrennt werden.
Wir könnten einen Gleichstrommotor also in beide Richtungen rotieren lassen.
Pinbelegung
Da die L298N H-Brücke relativ viele Aus- und Eingänge besitzt, haben wir diese nummeriert.

- 1 = Anschluss für den Gleichstrommotor 1 – „+“
- 2 = Anschluss für den Gleichstrommotor 1 – „-„
- 3 = 12V Jumper. Dieser kann entfernt werden, wenn du eine Versorgungsspannung von mehr als 12V Gleichstrom verwendest. Das Entfernen des Jumpers aktiviert die 5V Regulator der H-Brücke.
- 4 = Eingang für die Spannungsversorgung der H-Brücke (max. 35V Gleichstrom)
- 5 = Eingang für den GND
- 6 = 5V Ausgang, z.B. für die Stromversorgung des Mikrocontrollers
- 7 = Pin, über den der Gleichstrommotor 1 angesteuert wird. Falls dieser Pin an einen PWM-Pin des Mikrocontrollers angeschlossen wurde, kann die Motorengeschwindigkeit ebenfalls genau bestimmt werden.
- 8 = Pin IN1 – Steuert Gleichstrommotor 1
- 9 = Pin IN2 – Steuert Gleichstrommotor 1
- 10 = Pin IN3 – Steuert Gleichstrommotor 2
- 11 = Pin IN4 – Steuert Gleichstrommotor 2
- 12 = Pin, über den der Gleichstrommotor 2 angesteuert wird. Falls dieser Pin an einen PWM-Pin des Mikrocontrollers angeschlossen wurde, kann die Motorengeschwindigkeit ebenfalls genau bestimmt werden.
- 13 = Anschluss für den Gleichstrommotor 2 – „+“
- 14 = Anschluss für den Gleichstrommotor 2 – „-„
Schaltplan

Beispielsketch
// Gleichstrommotor 1
int GSM1 = 10;
int in1 = 9;
int in2 = 8;
// Gleichstrommotor 2
int GSM2 = 5;
int in3 = 7;
int in4 = 6;
void setup()
{
pinMode(GSM1, OUTPUT);
pinMode(GSM2, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void loop()
{
digitalWrite(in1, HIGH); // Motor 1 beginnt zu rotieren
digitalWrite(in2, LOW);
analogWrite(GSM1, 200); // Motor 1 soll mit der Geschwindigkeit "200" (max. 255) rotieren
digitalWrite(in3, HIGH); // Motor 2 beginnt zu rotieren
digitalWrite(in4, LOW);
analogWrite(GSM2, 200); // Motor 2 soll ebenfalls mit der Geschwindigkeit "200" (max. 255) rotieren
delay(2000);
digitalWrite(in1, LOW); // Durch die Veränderung von HIGH auf LOW (bzw. LOW auf HIGH) wird die Richtung der Rotation verändert.
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(2000);
digitalWrite(in1, LOW); // Anschließend sollen die Motoren 2 Sekunden ruhen.
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(2000);
}
Funduino - Dein Onlineshop für Mikroelektronik
-
Dauerhaft 10% Rabatt für Schüler, Studenten und Lehrkräfte
-
Mehr als 3.500 Artikel sofort verfügbar!
-
Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
SALE