tb6612 — TB6612-moottoriohjain

Moduuli tb6612 tarjoaa ohjaimen TB6612-moottoriohjaimelle. Se tarjoaa Motor-luokan yhden tasavirtamoottorin ohjaamiseen toisella kahdesta kanavasta sekä Stepper-luokan 4-johtimisen askelmoottorin ohjaamiseen.

Molemmat luokat käyttävät pyb.Timer(4)-ajastinta 1 kHz:n taajuudella nastoissa P7 ja P8 PWM-tehon ulostuloon. Motor-luokan suuntanastat ovat P3/P2 (kanava 1) ja P1/P0 (kanava 2). Stepper käyttää kaikkia neljää nastaa (P3, P2, P1, P0) sekä molempia PWM-kanavia.

Esimerkki:

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)

Luo tasavirtamoottorin ohjaimen, joka on sidottu toiseen TB6612:n kahdesta kanavasta.

  • channel: Moottorikanavan numero. 1 käyttää suuntanastoja P3/P2 ja PWM-nastaa P7 (ajastin 4, kanava 1). 2 käyttää suuntanastoja P1/P0 ja PWM-nastaa P8 (ajastin 4, kanava 2).

set_speed(pwm: int) None

Asettaa moottorin nopeuden ja suunnan.

  • pwm: Etumerkillinen pulssisuhde alueella -100100. Positiiviset arvot ajavat moottoria eteenpäin, negatiiviset taaksepäin. Itseisarvoa käytetään PWM-pulssisuhteen prosenttiosuutena tehonastalle.

class Stepper

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

Luo 4-johtimisen askelmoottorin ohjaimen. Alustaa suuntanastat P3, P2, P1, P0 sekä kaksi PWM-tehokanavaa nastoissa P7 ja P8 ja soveltaa sitten pyydetyn nopeuden ja tehon.

  • stepnumber: Liitetyn askelmoottorin täysien askelten määrä kierrosta kohden. Käytetään yhdessä rpms-arvon kanssa askelten välisen viiveen laskemiseen.

  • rpms: Tavoiteltu pyörimisnopeus kierroksina minuutissa. Välitetään metodille set_speed().

  • power: PWM-pulssisuhteen prosenttiosuus (0-100), jota sovelletaan molempiin tehokanaviin. Välitetään metodille set_power().

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

Generaattori, joka tuottaa loputtomasti nelivaiheisen ohjauskuvion (1, 0, 0, 0), (0, 0, 1, 0), (0, 1, 0, 0), (0, 0, 0, 1), jota metodi step() käyttää. Jokainen monikon alkio on arvo, joka kirjoitetaan vastaavasti nastaan pin1, pin2, pin3, pin4.

set_speed(rpms: int) None

Päivittää askellusnopeuden.

  • rpms: Tavoiteltu pyörimisnopeus kierroksina minuutissa. Puolikkaan askeleen viive (mikrosekunteina) lasketaan uudelleen kaavalla 1000000 / (rpms * stepnumber) / 2.

set_power(power: int) None

Asettaa molempiin tehokanaviin sovellettavan PWM-pulssisuhteen.

  • power: Pulssisuhteen prosenttiosuus alueella 0100.

step(num: int) None

Etenee askelmoottoria num vaihesiirtymää eteenpäin soveltamalla seuraavan vaiheen metodista phase_list() ja odottamalla määritettyä askelten välistä viivettä (komennolla pyb.udelay) siirtymien välillä.

  • num: Eteenpäin etenevien vaiheaskelten määrä. Jokainen step-kutsu etenee tasan tämän verran vaiheita; suunta on kiinteä (taustalla oleva vaihegeneraattori iteroi vain eteenpäin).