Päivitys (14 / 08 / 2026): Meillä on runsaasti varastossa kaikkia tuotteitamme, löydät meidät myös täältä ja    Tarjouksen saaminen

Liitä eri moottorit SBC:hen

Tässä opetusohjelmassa näemme, kuinka yleisimmät moottorityypit liitetään SBC. Näytämme sinulle myös, miten niitä käsitellään muutamilla esimerkeillä. Yleisimmät moottorityypit ovat:

  • Tasavirtamoottorit ovat halpoja ja helppoja ohjata, tarvitaan vain yksi teholähtö ja se voidaan aktivoida PWM-signaalilla.

  • Servomoottorit ovat samanlaisia ​​kuin tasavirtamoottorit, mutta niissä on pieni elektroniikka ja sisäinen potentiometri, jotka muodostavat suljetun säätöpiirin, mikä mahdollistaa pyörimiskulman säätelyn. Ohjaus on myös PWM:llä, mutta tässä tapauksessa ohjaussignaali on pienitehoinen ja tehoaste on integroitu itse servomoottoriin.

  • Askelmoottoreissa on useita käämejä ja ne vaativat sekvenssin ohjaamista, mutta vastineeksi ne tarjoavat suuren tarkkuuden, koska ne etenevät askel askeleelta aina, kun niiden käämien napaisuus käännetään.

1. DC-moottorit

Tasavirtamoottorin ohjaamiseksi yhdistämme sen SBC:hen seuraavan kaavion mukaisesti:

Meidän on tiedettävä joitain moottorimme parametreja, erityisesti käytettyjen volttien ja moottorin nopeuden tai Kv välinen suhde.

Dc_Motor-luokka edustaa DC-moottoria, jota ohjaa PWM 50 Hz:llä. Kuten voidaan nähdä, on annettava joitain parametreja, kuten syöttöjännite ja Kv-vakio sekä käytettävä nasta. Vastineeksi saamme kaksi funktiota: set_voltage ja set_speed.

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
luokka Dc_Motor: FREQ_Hz = 50
    def __init__( itse, pin, vm, kv ):
        itse.vm = vm
        itse.kv = kv
        itse.mänty = mänty
        itse.dout = SBC.Dout()
        itse.dout.set_pwm( itse.mänty, itse.FREQ_Hz, 0 )
        itse.set_voltage( 0 )
    
    def set_voltage( itse, v ): pulse_percent_on = 100 *v/itse.vm
        itse.dout.set_pwm( itse.mänty, itse.FREQ_Hz, 100-pulse_percent_on )
    
    def set_speed( itse, rpm):
        itse.set_voltage( rpm/itse.kv)

Käyttöesimerkki olisi seuraava:

>>> tuontiaika
>>> tuonti sbc_mtr
>>> moottori = sbc_mtr.Dc_Motor( "DOUT3", vm=12, kv=0.5 )
>>> tulosta( "Jännitesäätö")
Jännitteen ohjaus
>>> motor.set_voltage( 6 )
>>> aika.uni( 1 )
>>> motor.set_voltage( 0 )
>>> tulosta ("Nopeussäätö")
Nopeuden säätö
>>> motor.set_speed( 100 )
>>> aika.uni( 1 )
>>> motor.set_speed( 0 )

2. Servomoottorit

Servomoottori käyttää yhtä ohjaustappia moottorin pyörimiskulman säätämiseen.

 Servo_Motor-luokan koodi:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
luokka Servo moottori: FREQ_Hz = 50
    DUTY_MIN_ms = 0.5
    DUTY_MAX_ms = 2.5
    
    def __init__( itse, pin):
        itse.mänty = mänty
        itse.dout = SBC.Dout()
        itse.dout.set_pwm( itse.mänty, itse.FREQ_Hz, 0 )
        
    def set_angle( itse, kulman_aste ): duty_ms = itse.DUTY_MIN_ms + (itse.DUTY_MAX_ms-itse.DUTY_MIN_ms)*kulma_aste/ 180
        pulse_percent_on = itse.FREQ_Hz*duty_ms/ 10
        itse.dout.set_pwm( itse.mänty, itse.FREQ_Hz, 100-pulse_percent_on )

Ja yksi esimerkki käytöstä:

>>> tuontiaika
>>> tuonti sbc_mtr
>>> moottori = sbc_mtr.Servo_Motor( "DOUT3" )
>>> print("Aseta kulma 90 asteeseen")
Aseta kulma 90 asteeseen
>>> motor.set_angle( 90 )
>>> aika.uni( 1 )
>>> print("Aseta kulma 0 asteeseen")
Aseta kulma 0 asteeseen
>>> motor.set_angle( 0 )

3. Askelmoottorit

Askelmoottorin kytkemiseksi noudatamme samanlaista kaaviota kuin kuvassa:

Stepper_Motor-luokkakoodi on pohjimmiltaan tilakone, joka toteuttaa yllä olevan taulukon.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
luokka Stepper_Motor:
   
    def __init__( itse, nastat ):
        itse.mänty = mänty
        itse.dout = SBC.Dout()
        itse.olivat = 0
        itse.vaiheet = 0
        itse.dir = 1
        itse.ajastin = kone.Ajastin( -1 )
    
    def vaihe( itse, suunta):
        if( itse.olivat == 0 ):
            itse.dout.kirjoittaa( itse.nastat[0], 1 )
            itse.dout.kirjoittaa( itse.nastat[1], 1 )
            itse.dout.kirjoittaa( itse.nastat[2], 0 )
            itse.dout.kirjoittaa( itse.nastat[3], 0 )
        elif( itse.olivat == 1 ):
            itse.dout.kirjoittaa( itse.nastat[0], 0 )
            itse.dout.kirjoittaa( itse.nastat[1], 1 )
            itse.dout.kirjoittaa( itse.nastat[2], 1 )
            itse.dout.kirjoittaa( itse.nastat[3], 0 )
        elif( itse.olivat == 2 ):
            itse.dout.kirjoittaa( itse.nastat[0], 0 )
            itse.dout.kirjoittaa( itse.nastat[1], 0 )
            itse.dout.kirjoittaa( itse.nastat[2], 1 )
            itse.dout.kirjoittaa( itse.nastat[3], 1 )
        elif( itse.olivat == 3 ):
            itse.dout.kirjoittaa( itse.nastat[0], 1 )
            itse.dout.kirjoittaa( itse.nastat[1], 0 )
            itse.dout.kirjoittaa( itse.nastat[2], 0 )
            itse.dout.kirjoittaa( itse.nastat[3], 1 )
        itse.vaiheet += suunta
        itse.olivat = (itse.olivat + suunta) & 0x03
    
    def set_speed( itse, steps_s, direction ):
        if(vaiheet_s ja suunta):
            itse.ajastin.init( piste=int(1000 /step_s), tila=kone.Ajastin.PERIODIC, takaisinsoitto=lambda tmr: itse.askel (suunta) )
        muu:
            itse.ajastin.deinit()

Lopuksi esimerkki käytöstä:

>>> tuontiaika
>>> tuonti sbc_mtr
>>> moottori = sbc_mtr.Stepper_Motor( ["DOUT1", "DOUT2", "DOUT3", "DOUT4"] )
>>> tulosta ("Askel askeleelta")
Askel askeleelta
>>> i alueella (100):
... moottori.vaihe ( 1 )
... time.sleep_ms( 10 )
>>> tulosta ("Jatkuva")
Jatkuva
>>> motor.set_speed( 100, -1 )
>>> aika.uni( 1 )
>>> motor.set_speed( 0, 0 )

RTK-assistentti

Löydä parhaat tuotteet sovellukseesi vain muutamalla kysymyksellä.

Jos pidit tästä sisällöstä, voit seurata meitä Twitter, YouTube, Facebook or LinkedIn pysyäksesi ajan tasalla tällaisesta sisällöstä.

Onko sinulla kysyttävää tai pyyntöjä?
Ota meihin yhteyttä! Vastaamme <24 tuntia!

Ota yhteyttä ArduSimple
lähellä

Käytä tiliäsi ja tilauksiasi

Or

Uusi asiakas? luo tilisi
ArduSimple – helppokäyttöiset, erittäin tarkat RTK-mittauslaitteet ja -ratkaisut

Haluatko oppia lisää GPS:stä ja RTK:sta?

Jos olet juuri nyt kiireinen, insinöörimme voivat lähettää sinulle kolme lyhyttä sähköpostia, joissa kerrotaan kaikki tarvittavat tiedot projektisi aloittamiseksi.