Arduino- und DC-Motorsteuerung

Unterstützung für TB6612 Zweikanal-H-Brücke

1. TB6612-Motortreiber - Modul

Mit dem Zweikanaltreiber können Sie zwei DC-Motoren steuern. Der Dauerstrom eines einzelnen Motors darf 1A, kurzzeitig 3A nicht überschreiten. Die maximale Versorgungsspannung beträgt 12V. Diese Parameter erlauben den Betrieb von z.B. Pololu oder HL149 Mikromotoren.


Das Modul verfügt über die erforderlichen Leistungsfilterkondensatoren und einen Schutz gegen Rückleistungsanschluss.

Um die Montage zu erleichtern, ist das Modul mit Standard -Goldpin- Leitungen (2,54 mm Raster) ausgestattet. Das System kann in einem Prototyp- Steckbrett montiert oder mit Drähten an Arduino angeschlossen werden.

2. Anschließen des Moduls

Leistung

VCC - Stromversorgung des Logikteils

VMOT - Stromversorgung für Motoren

GND - Masse - denken Sie daran, dass alle "Massen" miteinander verbunden werden müssen

STBY - der Low-Zustand bewirkt den Übergang in den Stand-by-Zustand, d.h. geringer Stromverbrauch (Stand-by), damit die Brücke eingeschaltet ist, muss der High-Zustand gegeben sein

Ausgänge - Ausgänge, an die Motoren angeschlossen werden sollen

AO1, AO2 - Ausgänge Kanal A - Pins, an die der erste Motor angeschlossen werden soll

BO1, BO2 - Kanalausgänge B - Pins zu denen einen zweiten Motor anschließen

Motorsteuerung

PWMA - PWM-Signal von Kanal A - wird verwendet, um die Drehzahl des an Kanal A angeschlossenen Motors zu regeln

AIN1 AIN2 - Pins zum Einstellen der Drehrichtung des an die Ausgänge von Kanal A angeschlossenen Motors

PWMB - PWM-Signal von Kanal B - es wird verwendet, um die Drehzahl des an Kanal B angeschlossenen Motors zu regeln

BIN1, BIN2 - Pins zum Einstellen der Drehrichtung des an die Ausgänge von Kanal B angeschlossenen Motors

Tabelle – TB6612-Brückenunterstützung (x – bedeutet entsprechenden Kanal A oder B) 

x IN1

x IN2

PWM x

STBY

Ausgang Kanal x

niedrig hoch pwm hoch Der Motor dreht mit seiner durch pwm (ungleich 0) vorgegebenen Maximaldrehzahl im Uhrzeigersinn.
hoch niedrig pwm hoch Der Motor dreht mit der per PWM eingestellten Maximaldrehzahl (nicht 0) gegen den Uhrzeigersinn.
irgendein irgendein niedrig hoch Schnelles Bremsen (sog. Hard-Stop).
niedrig niedrig irgendein hoch Sanftes Bremsen.
hoch hoch irgendein hoch Sanftes Bremsen.
irgendein irgendein irgendein niedrig Die Bridge befindet sich im Standby - geringer Stromverbrauch.

Die Abbildung zeigt ein Beispiel für die Verbindung des Controllers mit dem Arduino Uno-Modul.

 

3. Beispielprogramm

Beispielprogramm zur Unterstützung des TB6612-Moduls. Das System sollte wie in der Abbildung gezeigt angeschlossen werden:

Das Programm führt zu einer rotierenden Motorwelle. Nach zwei Sekunden ändert sich die Drehrichtung. Nach weiteren zwei stoppt der Motor.

Programm:

 int pwmMotorA = 5;
int InMotorA1 = 4;
int InMotorA2 = 3;

void setup () {                 
  
  // PWM-Ausgang von Kanal A
  PinMode (pwmMotorA, AUSGANG); 
  
  // Digitaler Ausgang AIN1
  PinMode (InMotorA1, AUSGANG); 
  // Digitaler Ausgang AIN2
  PinMode (InMotorA2, AUSGANG);   

}

// Endlosschleife
Leere Schleife () {
  
  // Kanal A
  
  // Drehrichtung einstellen
  digitalWrite (InMotorA1, NIEDRIG); 
  digitalWrite (InMotorA2, HOCH);
  
  // Stellen Sie die Geschwindigkeit auf 50% ein (PWM-Bereich: 8 Bit, dh 0-255)
  analogWrite (pwmMotorA, 128);
   
  // 2s Verzögerung
  Verzögerung (2000);
  
  // Drehrichtung ändern 
  digitalWrite (InMotorA1, HIGH); 
  digitalWrite (InMotorA2, NIEDRIG);
  
  // 2s Verzögerung
  Verzögerung (2000);
  
  // Motorstopp - durch Setzen des PWM-Tastverhältnisses auf 0
  analogWrite (pwmMotorA, 0);
  
  // 2s Verzögerung
  Verzögerung (2000);

}

Wir freuen uns auf die Zusammenarbeit mit Ihnen!