tb6612 — TB6612 motor driver
The tb6612 module provides a driver for the TB6612 motor driver. It exposes
a Motor class for driving a single DC motor on one of two channels and
a Stepper class for driving a 4-wire stepper motor.
Both classes use pyb.Timer(4) at 1 kHz on pins P7 and P8 for PWM
power output. The Motor direction pins are P3/P2 (channel 1)
and P1/P0 (channel 2). The Stepper uses all four pins
(P3, P2, P1, P0) plus both PWM channels.
Example:
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 Stepper
- class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)
Construct a 4-wire stepper motor controller. Initializes direction pins
P3,P2,P1,P0and the two PWM power channels onP7andP8, then applies the requested speed and power.stepnumber: Number of full steps per revolution of the connected stepper motor. Used together withrpmsto compute the inter-step delay.rpms: Target rotation speed in revolutions per minute. Forwarded toset_speed().power: PWM duty cycle percentage (0-100) applied to both power channels. Forwarded toset_power().
- phase_list() Generator[tuple[int, int, int, int], None, None]
Generator that endlessly yields the four-phase drive pattern
(1, 0, 0, 0),(0, 0, 1, 0),(0, 1, 0, 0),(0, 0, 0, 1)used bystep(). Each tuple element is the value to write topin1,pin2,pin3,pin4respectively.
- set_speed(rpms: int) None
Update the stepping speed.
rpms: Target rotation speed in revolutions per minute. The per-half-step delay (in microseconds) is recomputed as1000000 / (rpms * stepnumber) / 2.
- set_power(power: int) None
Set the PWM duty cycle applied to both power channels.
power: Duty cycle percentage in the range0to100.
- step(num: int) None
Advance the stepper by
numphase transitions, applying the next phase fromphase_list()and waiting the configured inter-step delay (viapyb.udelay) between transitions.num: Number of phase steps to advance. Each call tostepadvances exactly this many phases; direction is fixed (the underlying phase generator only iterates forward).