tb6612 — Driver de motor TB6612¶
O módulo tb6612 fornece um driver para o driver de motor TB6612. Ele expõe uma classe Motor para acionar um único motor DC em um de dois canais e uma classe Stepper para acionar um motor de passo de 4 fios.
Ambas as classes usam pyb.Timer(4) a 1 kHz nos pinos P7 e P8 para a saída de potência PWM. Os pinos de direção da classe Motor são P3/P2 (canal 1) e P1/P0 (canal 2). A classe Stepper usa todos os quatro pinos (P3, P2, P1, P0) mais ambos os canais PWM.
Exemplo:
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)¶
Constrói um controlador de motor DC vinculado a um dos dois canais do TB6612.
channel: Número do canal do motor.1usa os pinos de direçãoP3/P2e o pino PWMP7(timer 4, canal 1).2usa os pinos de direçãoP1/P0e o pino PWMP8(timer 4, canal 2).
- set_speed(pwm: int) None¶
Define a velocidade e a direção do motor.
pwm: Ciclo de trabalho com sinal na faixa de-100a100. Valores positivos acionam o motor para frente, valores negativos o acionam em sentido reverso. O valor absoluto é aplicado como a porcentagem de ciclo de trabalho PWM ao pino de potência.
class Stepper¶
- class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)¶
Constrói um controlador de motor de passo de 4 fios. Inicializa os pinos de direção
P3,P2,P1,P0e os dois canais de potência PWM emP7eP8, e em seguida aplica a velocidade e a potência solicitadas.stepnumber: Número de passos completos por revolução do motor de passo conectado. Usado em conjunto comrpmspara calcular o atraso entre passos.rpms: Velocidade de rotação alvo em revoluções por minuto. Encaminhado paraset_speed().power: Porcentagem de ciclo de trabalho PWM (0-100) aplicada a ambos os canais de potência. Encaminhado paraset_power().
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
Gerador que produz indefinidamente o padrão de acionamento de quatro fases
(1, 0, 0, 0),(0, 0, 1, 0),(0, 1, 0, 0),(0, 0, 0, 1)usado porstep(). Cada elemento da tupla é o valor a ser escrito empin1,pin2,pin3,pin4, respectivamente.
- set_speed(rpms: int) None¶
Atualiza a velocidade de passo.
rpms: Velocidade de rotação alvo em revoluções por minuto. O atraso por meio-passo (em microssegundos) é recalculado como1000000 / (rpms * stepnumber) / 2.
- set_power(power: int) None¶
Define o ciclo de trabalho PWM aplicado a ambos os canais de potência.
power: Porcentagem de ciclo de trabalho na faixa de0a100.
- step(num: int) None¶
Avança o motor de passo em
numtransições de fase, aplicando a próxima fase dephase_list()e aguardando o atraso entre passos configurado (viapyb.udelay) entre as transições.num: Número de passos de fase a avançar. Cada chamada astepavança exatamente essa quantidade de fases; a direção é fixa (o gerador de fases subjacente só itera para frente).