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); }