Suche

Motoren mit H-Brücke L298N ansteuern

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.

H-Brücke L298 von oben
  • 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