tb6612 — TB6612 모터 드라이버¶
tb6612 모듈은 TB6612 모터 드라이버용 드라이버를 제공합니다. 두 채널 중 하나에서 단일 DC 모터를 구동하는 Motor 클래스와 4선식 스테퍼 모터를 구동하는 Stepper 클래스를 노출합니다.
두 클래스 모두 PWM 전력 출력을 위해 핀 P7 및 P8에서 1 kHz로 pyb.Timer(4)를 사용합니다. Motor 방향 핀은 P3/P2 (채널 1)와 P1/P0 (채널 2)입니다. Stepper는 네 개의 핀(P3, P2, P1, P0)과 두 PWM 채널을 모두 사용합니다.
예제:
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)¶
4선식 스테퍼 모터 컨트롤러를 생성합니다. 방향 핀
P3,P2,P1,P0과P7및P8의 두 PWM 전력 채널을 초기화한 다음 요청된 속도와 전력을 적용합니다.stepnumber: 연결된 스테퍼 모터의 회전당 전체 스텝 수.rpms와 함께 사용하여 스텝 간 지연을 계산합니다.rpms: 분당 회전수(RPM) 단위의 목표 회전 속도.set_speed()로 전달됩니다.power: 두 전력 채널 모두에 적용되는 PWM 듀티 사이클 백분율(0-100).set_power()로 전달됩니다.
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
step()에서 사용하는 4상 구동 패턴(1, 0, 0, 0),(0, 0, 1, 0),(0, 1, 0, 0),(0, 0, 0, 1)을 끝없이 yield하는 제너레이터입니다. 각 튜플 요소는 각각pin1,pin2,pin3,pin4에 기록할 값입니다.
- set_speed(rpms: int) None¶
스텝 속도를 갱신합니다.
rpms: 분당 회전수(RPM) 단위의 목표 회전 속도. 하프 스텝당 지연(마이크로초 단위)은1000000 / (rpms * stepnumber) / 2로 재계산됩니다.
- step(num: int) None¶
스테퍼를
num상 전환만큼 진행시키며,phase_list()의 다음 상을 적용하고 전환 사이에 구성된 스텝 간 지연(pyb.udelay를 통해)만큼 대기합니다.num: 진행할 상 스텝 수.step을 호출할 때마다 정확히 이 만큼의 상이 진행되며, 방향은 고정되어 있습니다(기반 상 제너레이터는 정방향으로만 반복함).