tb6612 — TB6612-Motortreiber¶
Das tb6612-Modul stellt einen Treiber für den TB6612-Motortreiber bereit. Es bietet eine Motor-Klasse zum Ansteuern eines einzelnen DC-Motors auf einem von zwei Kanälen sowie eine Stepper-Klasse zum Ansteuern eines 4-adrigen Schrittmotors.
Beide Klassen verwenden pyb.Timer(4) bei 1 kHz an den Pins P7 und P8 für die PWM-Leistungsausgabe. Die Richtungspins von Motor sind P3/P2 (Kanal 1) und P1/P0 (Kanal 2). Stepper verwendet alle vier Pins (P3, P2, P1, P0) sowie beide PWM-Kanäle.
Beispiel:
from tb6612 import Motor, Stepper
m = Motor(1)
m.set_speed(50) # 50% duty forward
s = Stepper(stepnumber=200, rpms=2, power=50)
s.step(100) # advance 100 steps
class Motor¶
- class tb6612.Motor(channel: int)¶
Erstellt eine DC-Motorsteuerung, die an einen der beiden TB6612-Kanäle gebunden ist.
channel: Motorkanalnummer.1verwendet die RichtungspinsP3/P2und den PWM-PinP7(Timer 4, Kanal 1).2verwendet die RichtungspinsP1/P0und den PWM-PinP8(Timer 4, Kanal 2).
- set_speed(pwm: int) None¶
Stellt Geschwindigkeit und Richtung des Motors ein.
pwm: Vorzeichenbehaftetes Tastverhältnis im Bereich-100bis100. Positive Werte treiben den Motor vorwärts, negative Werte rückwärts an. Der Absolutwert wird als prozentuales PWM-Tastverhältnis auf den Leistungspin angewendet.
class Stepper¶
- class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)¶
Erstellt eine Steuerung für einen 4-adrigen Schrittmotor. Initialisiert die Richtungspins
P3,P2,P1,P0und die beiden PWM-Leistungskanäle anP7undP8und wendet dann die angeforderte Geschwindigkeit und Leistung an.stepnumber: Anzahl der Vollschritte pro Umdrehung des angeschlossenen Schrittmotors. Wird zusammen mitrpmsverwendet, um die Verzögerung zwischen den Schritten zu berechnen.rpms: Ziel-Drehgeschwindigkeit in Umdrehungen pro Minute. Wird anset_speed()weitergeleitet.power: Prozentuales PWM-Tastverhältnis (0-100), das auf beide Leistungskanäle angewendet wird. Wird anset_power()weitergeleitet.
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
Generator, der endlos das Vierphasen-Ansteuerungsmuster
(1, 0, 0, 0),(0, 0, 1, 0),(0, 1, 0, 0),(0, 0, 0, 1)liefert, das vonstep()verwendet wird. Jedes Tupelelement ist der Wert, der jeweils aufpin1,pin2,pin3,pin4geschrieben wird.
- set_speed(rpms: int) None¶
Aktualisiert die Schrittgeschwindigkeit.
rpms: Ziel-Drehgeschwindigkeit in Umdrehungen pro Minute. Die Verzögerung pro Halbschritt (in Mikrosekunden) wird neu berechnet als1000000 / (rpms * stepnumber) / 2.
- set_power(power: int) None¶
Stellt das PWM-Tastverhältnis ein, das auf beide Leistungskanäle angewendet wird.
power: Prozentuales Tastverhältnis im Bereich0bis100.
- step(num: int) None¶
Bewegt den Schrittmotor um
numPhasenübergänge weiter, wobei die nächste Phase ausphase_list()angewendet und zwischen den Übergängen die konfigurierte Verzögerung zwischen den Schritten (überpyb.udelay) abgewartet wird.num: Anzahl der weiterzuschaltenden Phasenschritte. Jeder Aufruf vonstepschaltet genau diese Anzahl an Phasen weiter; die Richtung ist fest (der zugrunde liegende Phasengenerator iteriert nur vorwärts).