Inhaltsverzeichnis
Für dieses Projekt benötigst du
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
https://www.high-endrolex.com/45
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 bis zu 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