tb6612 — Controlador de motor TB6612¶
El módulo tb6612 proporciona un controlador para el controlador de motor TB6612. Expone una clase Motor para accionar un único motor de CC en uno de dos canales y una clase Stepper para accionar un motor paso a paso de 4 hilos.
Ambas clases utilizan pyb.Timer(4) a 1 kHz en los pines P7 y P8 para la salida de potencia PWM. Los pines de dirección de Motor son P3/P2 (canal 1) y P1/P0 (canal 2). El Stepper utiliza los cuatro pines (P3, P2, P1, P0) más ambos canales PWM.
Ejemplo:
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
clase Motor¶
- class tb6612.Motor(channel: int)¶
Construye un controlador de motor de CC vinculado a uno de los dos canales del TB6612.
channel: Número de canal del motor.1usa los pines de direcciónP3/P2y el pin PWMP7(temporizador 4, canal 1).2usa los pines de direcciónP1/P0y el pin PWMP8(temporizador 4, canal 2).
- set_speed(pwm: int) None¶
Establece la velocidad y la dirección del motor.
pwm: Ciclo de trabajo con signo en el rango de-100a100. Los valores positivos accionan el motor hacia adelante, los valores negativos lo accionan en reversa. El valor absoluto se aplica como porcentaje del ciclo de trabajo PWM al pin de potencia.
clase Stepper¶
- class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)¶
Construye un controlador de motor paso a paso de 4 hilos. Inicializa los pines de dirección
P3,P2,P1,P0y los dos canales de potencia PWM enP7yP8, y luego aplica la velocidad y la potencia solicitadas.stepnumber: Número de pasos completos por revolución del motor paso a paso conectado. Se utiliza junto conrpmspara calcular el retardo entre pasos.rpms: Velocidad de rotación objetivo en revoluciones por minuto. Se reenvía aset_speed().power: Porcentaje del ciclo de trabajo PWM (0-100) aplicado a ambos canales de potencia. Se reenvía aset_power().
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
Generador que produce indefinidamente el patrón de accionamiento de cuatro fases
(1, 0, 0, 0),(0, 0, 1, 0),(0, 1, 0, 0),(0, 0, 0, 1)utilizado porstep(). Cada elemento de la tupla es el valor que se escribe enpin1,pin2,pin3,pin4respectivamente.
- set_speed(rpms: int) None¶
Actualiza la velocidad de avance por pasos.
rpms: Velocidad de rotación objetivo en revoluciones por minuto. El retardo por medio paso (en microsegundos) se recalcula como1000000 / (rpms * stepnumber) / 2.
- set_power(power: int) None¶
Establece el ciclo de trabajo PWM aplicado a ambos canales de potencia.
power: Porcentaje del ciclo de trabajo en el rango de0a100.
- step(num: int) None¶
Avanza el motor paso a paso en
numtransiciones de fase, aplicando la siguiente fase dephase_list()y esperando el retardo entre pasos configurado (mediantepyb.udelay) entre transiciones.num: Número de pasos de fase a avanzar. Cada llamada astepavanza exactamente este número de fases; la dirección es fija (el generador de fases subyacente solo itera hacia adelante).