tb6612 — TB6612 motorstuurprogramma¶
De tb6612-module biedt een stuurprogramma voor het TB6612 motorstuurprogramma. Het stelt een Motor-klasse beschikbaar voor het aansturen van één enkele DC-motor op een van twee kanalen, en een Stepper-klasse voor het aansturen van een 4-draads stappenmotor.
Beide klassen gebruiken pyb.Timer(4) op 1 kHz op de pinnen P7 en P8 voor PWM-vermogensuitvoer. De richtingspinnen van Motor zijn P3/P2 (kanaal 1) en P1/P0 (kanaal 2). De Stepper gebruikt alle vier de pinnen (P3, P2, P1, P0) plus beide PWM-kanalen.
Voorbeeld:
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
klasse Motor¶
klasse Stepper¶
- class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)¶
Construeer een 4-draads stappenmotorcontroller. Initialiseert de richtingspinnen
P3,P2,P1,P0en de twee PWM-vermogenskanalen opP7enP8, en past vervolgens de gevraagde snelheid en het vermogen toe.stepnumber: Aantal volledige stappen per omwenteling van de aangesloten stappenmotor. Wordt samen metrpmsgebruikt om de vertraging tussen stappen te berekenen.rpms: Doelrotatiesnelheid in omwentelingen per minuut. Doorgegeven aanset_speed().power: PWM-duty-cycle-percentage (0-100) toegepast op beide vermogenskanalen. Doorgegeven aanset_power().
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
Generator die eindeloos het vierfasige aandrijfpatroon
(1, 0, 0, 0),(0, 0, 1, 0),(0, 1, 0, 0),(0, 0, 0, 1)oplevert dat doorstep()wordt gebruikt. Elk tuple-element is de waarde die respectievelijk naarpin1,pin2,pin3,pin4wordt geschreven.
- set_speed(rpms: int) None¶
Werk de stapsnelheid bij.
rpms: Doelrotatiesnelheid in omwentelingen per minuut. De vertraging per halve stap (in microseconden) wordt herberekend als1000000 / (rpms * stepnumber) / 2.
- set_power(power: int) None¶
Stel de PWM-duty-cycle in die op beide vermogenskanalen wordt toegepast.
power: Duty-cycle-percentage in het bereik0tot100.
- step(num: int) None¶
Verplaats de stappenmotor met
numfaseovergangen, waarbij de volgende fase uitphase_list()wordt toegepast en de geconfigureerde vertraging tussen stappen wordt afgewacht (viapyb.udelay) tussen overgangen.num: Aantal fasestappen om te verplaatsen. Elke aanroep vanstepverplaatst precies dit aantal fasen; de richting ligt vast (de onderliggende fasegenerator itereert alleen vooruit).