tb6612 — TB6612 motordrivrutin¶
Modulen tb6612 tillhandahåller en drivrutin för TB6612 motordrivrutinen. Den exponerar en Motor-klass för att driva en enskild likströmsmotor på en av två kanaler och en Stepper-klass för att driva en 4-tråds stegmotor.
Båda klasserna använder pyb.Timer(4) vid 1 kHz på stiften P7 och P8 för PWM-effektutmatning. Motor-riktningsstiften är P3/P2 (kanal 1) och P1/P0 (kanal 2). Stepper använder alla fyra stiften (P3, P2, P1, P0) plus båda PWM-kanalerna.
Exempel:
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)¶
Skapa en styrning för en 4-tråds stegmotor. Initierar riktningsstiften
P3,P2,P1,P0och de två PWM-effektkanalerna påP7ochP8, och tillämpar sedan den begärda hastigheten och effekten.stepnumber: Antal hela steg per varv för den anslutna stegmotorn. Används tillsammans medrpmsför att beräkna fördröjningen mellan steg.rpms: Målrotationshastighet i varv per minut. Vidarebefordras tillset_speed().power: PWM-arbetscykelns procentandel (0-100) som tillämpas på båda effektkanalerna. Vidarebefordras tillset_power().
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
Generator som oändligt ger fyrfas-drivmönstret
(1, 0, 0, 0),(0, 0, 1, 0),(0, 1, 0, 0),(0, 0, 0, 1)som används avstep(). Varje tupelelement är värdet som ska skrivas tillpin1,pin2,pin3, respektivepin4.
- set_speed(rpms: int) None¶
Uppdatera stegningshastigheten.
rpms: Målrotationshastighet i varv per minut. Fördröjningen per halvsteg (i mikrosekunder) beräknas om som1000000 / (rpms * stepnumber) / 2.
- set_power(power: int) None¶
Ställ in PWM-arbetscykeln som tillämpas på båda effektkanalerna.
power: Arbetscykelns procentandel i intervallet0till100.
- step(num: int) None¶
Flytta fram stegmotorn med
numfasövergångar, genom att tillämpa nästa fas frånphase_list()och vänta den konfigurerade fördröjningen mellan steg (viapyb.udelay) mellan övergångarna.num: Antal fassteg att flytta fram. Varje anrop tillstepflyttar fram exakt så här många faser; riktningen är fast (den underliggande fasgeneratorn itererar endast framåt).