tb6612 — TB6612 motor sürücüsü

tb6612 modülü, TB6612 motor sürücüsü için bir sürücü sağlar. İki kanaldan birinde tek bir DC motoru sürmek için bir Motor sınıfı ve 4 telli bir step motorunu sürmek için bir Stepper sınıfı sunar.

Her iki sınıf da PWM güç çıkışı için P7 ve P8 pinlerinde 1 kHz’de pyb.Timer(4) kullanır. Motor yön pinleri P3/P2 (kanal 1) ve P1/P0 (kanal 2) şeklindedir. Stepper dört pinin tümünü (P3, P2, P1, P0) ve her iki PWM kanalını kullanır.

Örnek:

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)

İki TB6612 kanalından birine bağlı bir DC motor denetleyicisi oluşturur.

  • channel: Motor kanal numarası. 1 yön pinleri P3/P2 ve PWM pini P7 (zamanlayıcı 4, kanal 1) kullanır. 2 yön pinleri P1/P0 ve PWM pini P8 (zamanlayıcı 4, kanal 2) kullanır.

set_speed(pwm: int) None

Motor hızını ve yönünü ayarlar.

  • pwm: -100 ile 100 arasında işaretli görev döngüsü. Pozitif değerler motoru ileri, negatif değerler ise geri sürer. Mutlak değer, güç pinine PWM görev döngüsü yüzdesi olarak uygulanır.

class Stepper

class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)

4 telli bir step motor denetleyicisi oluşturur. P3, P2, P1, P0 yön pinlerini ve P7 ile P8 üzerindeki iki PWM güç kanalını başlatır, ardından istenen hız ve gücü uygular.

  • stepnumber: Bağlı step motorunun her devirdeki tam adım sayısı. Adımlar arası gecikmeyi hesaplamak için rpms ile birlikte kullanılır.

  • rpms: Dakikadaki devir cinsinden hedef dönüş hızı. set_speed() öğesine iletilir.

  • power: Her iki güç kanalına uygulanan PWM görev döngüsü yüzdesi (0-100). set_power() öğesine iletilir.

phase_list() Generator[tuple[int, int, int, int], None, None]

Sonsuz olarak (1, 0, 0, 0), (0, 0, 1, 0), (0, 1, 0, 0), (0, 0, 0, 1) dört fazlı sürme desenini veren ve step() tarafından kullanılan üreteç. Her demet öğesi sırasıyla pin1, pin2, pin3, pin4 öğelerine yazılacak değerdir.

set_speed(rpms: int) None

Adımlama hızını günceller.

  • rpms: Dakikadaki devir cinsinden hedef dönüş hızı. Yarım adım başına gecikme (mikrosaniye cinsinden) 1000000 / (rpms * stepnumber) / 2 olarak yeniden hesaplanır.

set_power(power: int) None

Her iki güç kanalına uygulanan PWM görev döngüsünü ayarlar.

  • power: 0 ile 100 arasında görev döngüsü yüzdesi.

step(num: int) None

Step motorunu num faz geçişi kadar ilerletir; phase_list() öğesinden bir sonraki fazı uygular ve geçişler arasında yapılandırılmış adımlar arası gecikme (pyb.udelay aracılığıyla) süresi kadar bekler.

  • num: İlerletilecek faz adımı sayısı. step öğesine yapılan her çağrı tam olarak bu kadar fazı ilerletir; yön sabittir (alttaki faz üreteci yalnızca ileri yönde yineler).