tb6612 --- TB6612 电机驱动¶
tb6612 模块为 TB6612 电机驱动器提供驱动。它公开了用于驱动两个通道之一上单个直流电机的 Motor 类,以及用于驱动 4 线步进电机的 Stepper 类。
两个类都在引脚 P7 和 P8 上使用 1 kHz 的 pyb.Timer(4) 进行 PWM 功率输出。Motor 的方向引脚为 P3/P2(通道 1)和 P1/P0(通道 2)。Stepper 使用全部四个引脚(P3、P2、P1、P0)以及两个 PWM 通道。
示例:
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)¶
构造一个 4 线步进电机控制器。初始化方向引脚
P3、P2、P1、P0以及P7和P8上的两个 PWM 功率通道,然后应用所请求的速度和功率。stepnumber:所连接步进电机每转的整步数。与rpms一起用于计算步间延迟。rpms:目标转速(以每分钟转数为单位)。转发给set_speed()。power:施加到两个功率通道的 PWM 占空比百分比(0-100)。转发给set_power()。
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
无限生成
step()所用四相驱动模式(1, 0, 0, 0)、(0, 0, 1, 0)、(0, 1, 0, 0)、(0, 0, 0, 1)的生成器。每个元组元素分别是要写入pin1、pin2、pin3、pin4的值。
- set_speed(rpms: int) None¶
更新步进速度。
rpms:目标转速(以每分钟转数为单位)。每半步延迟(以微秒为单位)重新计算为1000000 / (rpms * stepnumber) / 2。
- step(num: int) None¶
将步进电机推进
num个相位转换,从phase_list()应用下一相位,并在转换之间等待所配置的步间延迟(通过pyb.udelay)。num:要推进的相位步数。每次调用step恰好推进这么多相位;方向是固定的(底层相位生成器只向前迭代)。