TB6612FNG Dual Motor Driver – so nennt sich ein sehr kompakter und preiswerter Motortreiber für alle Projekte wo es auf Platz oder Gewicht an kommt. Auf einer daumengroßen Platine (20x14mm) steckt die Ansteuerung für zwei Motoren. Die Motoren können kurzzeitig bis zu 3A aufnehmen. Dauerhaft kann das Board mit zweimal 1A belastet werden (oder 1x2A bei Parallelschaltung), das reicht auch für etwas größere Motoren.
Ein ideales Board für kleine und kleinste Roboter, Modellfahrzeuge, Flugmodelle. Natürlich können statt Motoren auch andere Lasten (z.B. Lampen) angeschlossen werden.
Angesteuert wird das Board wie die meisten Motortreiber über 2 PWM Port sowie vier digitale Ports für die Drehrichtung
Vorteilhaft ist auch das schon kleine Batteriespannungen für dieses Motorboard ausreichen.
Das Modul wird fertig aufgebaut geliefert, man muss sich nicht mit winzigen SMD Bauteilen beim Löten rumärgern. Lediglich die mitgelieferten Stiftleisten müssen bei Bedarf eingelötet werden.
Technische Daten
- geringste Größe: 20mm x 14mm
- geringstes Gewicht 0.85g, daher auch für Flugmodelle geeignet
- Motorspannung 4,5 bis 13,5 Volt
- treibt zwei Motoren an (2 integrierte H-Brücken)
- Ausgangleistung (Kurzzeitig/Peak) 3 Ampere je Kanal
- Ausgangleistung (Dauerbelastung) 1 Ampere je Kanal
- Ausgangleistung (bei Parallelschaltung) 2A
- Maximale PWM Frequenz: 100 kHz
- Lokikspannung (VCC) 2,7 bis 5,5 Volt
- Verpolungsschutz
Anschluss des Motortreibers
Der Motortreiber wird als Fertigmodul geliefert. Der Anschluss erfolgt über Lötpunkte an die entweder Drähte direkt eingelötet werden oder aber die beiden mitgelieferte Stiftleiste eingelötet wird.
Wir empfehlen die Stiftleiste einzulöten denn so können Sie sehr einfach über ein Steckboard oder über Standard-Stecker und Buchsenleisten das Modul verwenden. Auf nachfolgende Bilder kann man die Verwendung mit Stiftleiste ersehen:
Beachten Sie das die Stiftleisten auf der Beschriftungsseite eingelötet werden sollten, falls Sie das Modul auch in Steckboards betreiben wollen. Die Wärme wird auch besser abgeleitet wenn der Chip oberhalb liegt.
Die Anschlüsse des Chips ähneln den üblichen Motortreibern wie L298, L293 oder den Motorboards RN-VNH Dualmotor, RN-MiniHBridge. Somit ist nahezu jedes Controllerboard zur Ansteuerung geeignet.
Controllerboards die eine Motorbuchse besitzen die sich an die RN-Definitionen (Empfehlungen des Roboternetzes.de) hält, können diese Treiberplatine bequem über diesen Stecker betreiben. Sie brauchen nur das 10 polige Kabel entsprechend anzulöten. Nur die Motorspannung muss dann noch getrennt angelegt werden. Unter anderem verfügt RN-MiniControl oder RN-Mega128Funk über eine solche Buchse.
Aber natürlich lassen sich auch andere Boards oder Controller entsprechend verdrahten. Bei RN-Control könnte man z.B. den OnBoard Motortreiber durch diesen stärkeren Treiber ersetzen. Es gibt viele Möglichkeiten.
Pinbelegung
GND
Der Minuspol der Spannungsquelle
VCC
Die Betriebsspannung (Lokikspannung) kann zwischen 2,7V und 5,5V liegen.
VMOT
Die maximale Motorspannung die zur Versorgung der Motoren genutzt wird. Sie sollte zwischen 4,5 bis 13,5 Volt liegen. Über den Pin PWMA und PWMB kann diese später runtergeregelt werden.
A IN1 und AIN2 (Eingang)
Diese beiden Eingangsports steuern die gleichnamigen Ausgangsports AO1 und AO2, also auch die Last (den Motor) die an AO1 und AO2 angeschlossen ist. Wird AIN1 auf High gesetzt, so wird auch AO1 HIGH. Wird AIN1 auf High und AIN2 auf LOW gesetzt, dreht ein Motor in die eine Richtung,. Wird umgekehrt AIN1 auf Low und AIN2 auf High gesetzt so dreht er in die andere Richtung. Werden beide auf High gesetzt, so wird gebremst.
BIN1 und BIN2 (Eingang)
Diese beiden Eingangsports steuern die gleichnamigen Ausgangsports BO1 und BO2, also auch die Last (den Motor) die an BO1 und BO2 angeschlossen ist. Wird BIN1 auf High gesetzt, so wird auch BO1 HIGH. Wird BIN1 auf High und BIN2 auf LOW gesetzt, dreht ein Motor in die eine Richtung. Wird umgekehrt BIN1 auf Low und BIN2 auf High gesetzt so dreht er in die andere Richtung. Werden beide auf High gesetzt, so wird gebremst.
AO1 und AO2 (Output)
An diese Pin`s wird die Last bzw. der Motor A angeschlossen. Über die Ports AIN1 und AIN2 erfolgt die Ansteuerung.
BO1 und BO2 (Output)
An diese Pin`s wird die Last bzw. der Motor B angeschlossen. Über die Ports BIN1 und BIN2 erfolgt die Ansteuerung.
PWMA (Eingang)
Über einen Port mit PWM-Signal (Pulsweitenmodulation) kann an diesem Pin die Ausgangsspannung von AO1 und AO2 bestimmt werden. Also bei Motoren die Geschwindigkeit geregelt werden. Möchte man den Motor immer mit voller Motorspannung VMOT betreiben, so reicht es wenn dieser Port dauerhaft auf High gelegt wird.
PWMB (Eingang)
Über einen Port mit PWM-Signal (Pulsweitenmodulation) kann an diesem Pin die Ausgangsspannung von BO1 und BO2 bestimmt werden. Also bei Motoren die Geschwindigkeit geregelt werden. Möchte man den Motor immer mit voller Motorspannung VMOT betreiben, so reicht es wenn dieser Port dauerhaft auf High gelegt wird.
STBY (Eingang)
Dieser Pin aktiviert und deaktiviert end Motortreiber. Wird er auf Low gelegt, so liegt an den Ausgangsleitungen (AO1, AO2, BO1, BO2) kein Pegel an (Hochohmig). Um die Motoren zu steuern muss er somit immer auf High gesetz werden.
In der nachfolgenden Tabelle kann man noch einmal den Zusammenhang der Eingangssignale in Bezug auf den Motorenzustand erkennen.
Beispielprogramme
Das nachfolgende Bascom-Beispielprogramm zeigt wie man das Board anschließt und programmiert. Als Controllerboard haben wir hier das Board RN-MiniControl verwendet. Natürlich lassen sich diese Bascom Beispiele leicht auch auf andere Controller und Controllerboards übertragen.
Das Bild zeigt wie wir RN-MiniControl und den Motortreiber verbinden. In unserem Beispiel haben wir dazu eine Buchsenleiste auf eine Experimentierplatine gelötet. So können wir das Modul bequem für Testzwecke einstecken und wieder herausnehmen. Die Anschlüsse haben wir durch einfache Drahtbrücken auf eine 10 polige Buchse gelegt. Diese lässt sich dann bequem per Flachkabel mit RN-MiniControl verbinden. Natürlich hätten wir das Kabel auch direkt an das Modul löten können.
Testprogramm: Motortreiber TB6612FNG test1.BAS
Das erste Beispielprogramm schalten wir die beide Motoren 10 Sekunden ein. Danach schalten wir diese aus und nach 2 Sekunden mit umgekehrter Drehrichtung wieder ein. Das ganze wiederholen wir unendlich. Für diese Anwendung reichen ganz normale Ports, ein PWM-Port ist eigentlich nicht notwendig da wir keine Geschwindigkeit regeln.
'################################################### 'Motortreiber TB6612FNG test1.BAS 'Dieses Programm ist für das universelle und kompakte 'Controllerboard RN-MINICONTROL ab Version 1.0 'Boardbeschreibung Roboternetz.de oder www.mikrocontroller-elektronik.de ' 'Autor: Frank 'Weitere Beispiele und Beschreibung der Hardware 'unter http://www.Roboternetz.de bzw. www.mikrocontroller-elektronik.de '################################################### $programmer = 12 'MCS USB-ISP (Zeile weglassen wenn anderer Programmer) 'Die üblichen Definitionen bei Standardprogrammen auf Miniboard $regfile = "m168def.dat" $crystal = 16000000 'Quarzfrequenz $baud = 9600 $hwstack = 34 $framesize = 34 $swstack = 34 Config Pinb.1 = Output Motor1_pwm Alias Portb.1 Config Pind.6 = Output Motor1_in1 Alias Portd.6 Config Pind.7 = Output Motor1_in2 Alias Portd.7 Config Pinb.2 = Output Motor2_pwm Alias Portb.2 Config Pinb.0 = Output Motor2_in1 Alias Portb.0 Config Pinb.5 = Output Motor2_in2 Alias Portb.5 Wait 2 Print "RESET RN-MINICONTROL" Print "robotikhardware.de" " Do Motor1_pwm = 1 Motor2_pwm = 1 Motor1_in1 = 0 'Drehrichtung Motor 1 Motor1_in2 = 1 'Drehrichtung Motor 1 Motor2_in1 = 1 'Drehrichtung Motor 2 Motor2_in2 = 0 'Drehrichtung Motor 2 Wait 10 'Motor aus ohne zu bremsen Motor1_in1 = 0 Motor1_in2 = 0 Motor2_in1 = 0 Motor2_in2 = 0 Wait 2 Print "Richtungswechsel" Motor1_pwm = 1 Motor2_pwm = 1 Motor1_in1 = 0 'Drehrichtung Motor 1 Motor1_in2 = 1 'Drehrichtung Motor 1 Motor2_in1 = 0 'Drehrichtung Motor 2 Motor2_in2 = 1 'Drehrichtung Motor 2 Wait 10 'Motor aus ohne zu bremsen Motor1_in1 = 0 Motor1_in2 = 0 Motor2_in1 = 0 Motor2_in2 = 0 Wait 2 Print "Richtungswechsel" Loop End
Testprogramm: Motortreiber TB6612FNG demo.BAS
In diesem Beispiel demonstrieren wir wie man auch die Geschwindigkeit der Motoren regelt. Wir beschleunigen erst beide Motoren langsam in eine Richtung und bremsen dann schlagartig ab. Danach erfolgt das gleiche in die andere Richtung.
Diese schlagartige Bremsung ist nicht für alle Motoren zu empfehlen da es diesen schaden kann. Besser ist es wenn Sie langsam die Geschwindigkeit drosseln bevor sie bremsen.
'################################################### 'Motortreiber TB6612FNG demo.BAS 'Dieses Programm ist für das universelle und kompakte 'Controllerboard RN-MINICONTROL ab Version 1.0 'Boardbeschreibung Roboternetz.de oder https://www.mikrocontroller-elektronik.de/ ' 'Aufgabe: 'Demonstriert wie man Motoren mit dem Board ansteuert 'Dazu muss an dem vorhandenen Motorstecker eine 'H-Brücke angeschlossen werden. 'Wir verwenden hier den Motortreiber TB6612FNG 'In dem Beispiel werden beide Motoren langsam beschleunigt; 'Richtung umgekehrt und wieder beschleunigt ' 'Die Ausgabe erfolgt über Bascom Terminalprogramm. PC muss 'somit über RS232 Kabel verbunden sein ' 'Autor: Frank '################################################### $programmer = 12 'MCS USB-ISP (Zeile weglassen wenn anderer Programmer) 'Die üblichen Definitionen bei Standardprogrammen auf Miniboard $regfile = "m168def.dat" $crystal = 16000000 'Quarzfrequenz $baud = 9600 $hwstack = 34 $framesize = 34 $swstack = 34 Config Pinb.1 = Output Motor1_pwm Alias Portb.1 Config Pind.6 = Output Motor1_in1 Alias Portd.6 Config Pind.7 = Output Motor1_in2 Alias Portd.7 Config Pinb.2 = Output Motor2_pwm Alias Portb.2 Config Pinb.0 = Output Motor2_in1 Alias Portb.0 Config Pinb.5 = Output Motor2_in2 Alias Portb.5 'PWM Frequenz Initialisieren Tccr1a = &B10100010 '9 Bit PWM Voller Takt Tccr1b = &B10000010 'Teiler = 8 PWM = 1951 Hz bei 9 Bit Dim I As Word Wait 2 Print "RESET RN-MINICONTROL" Print "https://www.mikrocontroller-elektronik.de/" Do Print " Richtung1" Motor1_in1 = 0 'Drehrichtung Motor 1 Motor1_in2 = 1 'Drehrichtung Motor 1 Motor2_in1 = 1 'Drehrichtung Motor 2 Motor2_in2 = 0 'Drehrichtung Motor 2 For I = 0 To 511 Pwm1a = I Pwm1b = I Print "Pwm1a:" ; Pwm1a ; " Pwm1b:" ; Pwm1b Waitms 25 Next I Wait 5 'Bremsen Pwm1a = 0 Pwm1b = 0 Wait 2 Motor1_in1 = 0 'Drehrichtung Motor 1 Motor1_in2 = 0 'Drehrichtung Motor 1 Motor2_in1 = 0 'Drehrichtung Motor 2 Motor2_in2 = 0 Print " Richtung2" Motor1_in1 = 1 'Drehrichtung Motor 1 Motor1_in2 = 0 'Drehrichtung Motor 1 Motor2_in1 = 0 'Drehrichtung Motor 2 Motor2_in2 = 1 'Drehrichtung Motor 2 For I = 0 To 511 Pwm1a = I Pwm1b = I Print "Pwm1a:" ; Pwm1a ; " Pwm1b:" ; Pwm1b Waitms 25 Next I Wait 5 'Bremsen Pwm1a = 0 Pwm1b = 0 Wait 2 Motor1_in1 = 0 'Drehrichtung Motor 1 Motor1_in2 = 0 'Drehrichtung Motor 1 Motor2_in1 = 0 'Drehrichtung Motor 2 Motor2_in2 = 0 Loop End
Schaltplan
Downloads
Datenblatt Chip (PDF)
Bascom Beispiele für Ansteuerung (ZIP)
Weblinks zum Thema
Bezugsquelle
oder ähnliches bei Amazon:
Letzte Aktualisierung am 27.08.2024 / * Affiliate Links