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

class tb6612.Motor(channel: int)

Construeer een DC-motorcontroller die gebonden is aan een van de twee TB6612-kanalen.

  • channel: Motorkanaalnummer. 1 gebruikt richtingspinnen P3/P2 en PWM-pin P7 (timer 4, kanaal 1). 2 gebruikt richtingspinnen P1/P0 en PWM-pin P8 (timer 4, kanaal 2).

set_speed(pwm: int) None

Stel de motorsnelheid en -richting in.

  • pwm: Getekende duty cycle in het bereik -100 tot 100. Positieve waarden drijven de motor vooruit aan, negatieve waarden achteruit. De absolute waarde wordt als PWM-duty-cycle-percentage toegepast op de vermogenspin.

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, P0 en de twee PWM-vermogenskanalen op P7 en P8, en past vervolgens de gevraagde snelheid en het vermogen toe.

  • stepnumber: Aantal volledige stappen per omwenteling van de aangesloten stappenmotor. Wordt samen met rpms gebruikt om de vertraging tussen stappen te berekenen.

  • rpms: Doelrotatiesnelheid in omwentelingen per minuut. Doorgegeven aan set_speed().

  • power: PWM-duty-cycle-percentage (0-100) toegepast op beide vermogenskanalen. Doorgegeven aan set_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 door step() wordt gebruikt. Elk tuple-element is de waarde die respectievelijk naar pin1, pin2, pin3, pin4 wordt 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 als 1000000 / (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 bereik 0 tot 100.

step(num: int) None

Verplaats de stappenmotor met num faseovergangen, waarbij de volgende fase uit phase_list() wordt toegepast en de geconfigureerde vertraging tussen stappen wordt afgewacht (via pyb.udelay) tussen overgangen.

  • num: Aantal fasestappen om te verplaatsen. Elke aanroep van step verplaatst precies dit aantal fasen; de richting ligt vast (de onderliggende fasegenerator itereert alleen vooruit).