Update (13 / 02 / 2026): Kami memiliki banyak stok semua produk kami, temukan kami juga di dan    Toko sekarang

Hubungkan motor yang berbeda ke SBC Anda

Dalam tutorial ini kita akan melihat cara menghubungkan jenis motor yang paling umum ke SBC. Kami juga akan menunjukkan cara menanganinya dengan beberapa contoh. Jenis mesin yang paling umum adalah:

  • Motor DC murah dan mudah dikendalikan, hanya diperlukan satu output daya dan ini dapat diaktifkan dengan sinyal PWM.

  • Motor servo mirip dengan motor DC, tetapi termasuk elektronik kecil dan potensiometer internal untuk membentuk loop kontrol tertutup, ini memungkinkan sudut rotasi dikontrol. Kontrolnya juga dengan PWM, tetapi dalam hal ini sinyal kontrolnya berdaya rendah dan tahap daya terintegrasi dalam servomotor itu sendiri.

  • Motor stepper memiliki beberapa lilitan dan memerlukan urutan untuk dikontrol, tetapi sebagai gantinya mereka memberikan presisi yang tinggi karena mereka maju selangkah demi selangkah setiap kali polaritas lilitannya dibalik.

1. Motor DC

Untuk mengontrol motor DC, kita akan menghubungkannya ke SBC seperti yang ditunjukkan pada diagram berikut:

Kita perlu mengetahui beberapa parameter motor kita, khususnya hubungan antara volt yang diterapkan dan kecepatan motor atau Kv.

Kelas Dc_Motor mewakili motor DC, dikendalikan oleh PWM pada 50Hz. Seperti dapat dilihat, beberapa parameter harus disediakan, seperti tegangan suplai dan konstanta Kv, serta pin yang akan digunakan. Sebagai imbalannya kita mendapatkan dua fungsi: set_voltage dan set_speed.

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
kelas Dc_Motor: FREQ_Hz = 50
    def __init__( diri, pin, vm, kv ):
        diri.vm = vm
        diri.kv = kv
        diri.pin = pin
        diri.bodoh = Sbc.Dout()
        diri.bodoh.set_pwm( diri.pinus, diri.FREQ_Hz, 0 )
        diri.set_tegangan( 0 )
    
    def set_tegangan( diri, v ): pulse_percent_on = 100 *v/diri.vm
        diri.bodoh.set_pwm( diri.pinus, diri.FREQ_Hz, 100-pulsa_persen_on )
    
    def set_kecepatan( diri,rpm):
        diri.set_voltage (rpm/diri.kv)

Contoh penggunaannya adalah sebagai berikut:

>>> waktu impor
>>> impor sbc_mtr
>>> motor = sbc_mtr.Dc_Motor( "DOUT3", vm=12, kv=0.5 )
>>> print("Kontrol tegangan")
Kontrol tegangan
>>> motor.set_voltage( 6 )
>>> waktu.tidur( 1 )
>>> motor.set_voltage( 0 )
>>> print("Kontrol kecepatan")
Kontrol kecepatan
>>> motor.set_speed( 100 )
>>> waktu.tidur( 1 )
>>> motor.set_speed( 0 )

2. Motor servo

Motor servo menggunakan pin kontrol tunggal untuk mengontrol sudut putaran motor.

 Kode kelas Servo_Motor:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
kelas Motor servo: FREQ_Hz = 50
    DUTY_MIN_ms = 0.5
    DUTY_MAX_ms = 2.5
    
    def __init__( diri, pin):
        diri.pin = pin
        diri.bodoh = Sbc.Dout()
        diri.bodoh.set_pwm( diri.pinus, diri.FREQ_Hz, 0 )
        
    def set_sudut( diri, angle_deg ): duty_ms = diri.DUTY_MIN_ms + (diri.DUTY_MAX_ms-diri.DUTY_MIN_md)*sudut_deg/ 180
        pulsa_persen_on = diri.FREQ_Hz*tugas_ms/ 10
        diri.bodoh.set_pwm( diri.pinus, diri.FREQ_Hz, 100-pulsa_persen_on )

Dan salah satu contoh penggunaan:

>>> waktu impor
>>> impor sbc_mtr
>>> motor = sbc_mtr.Servo_Motor("DOUT3" )
>>> print("Atur sudut menjadi 90 derajat")
Atur sudut ke 90 derajat
>>> motor.set_angle( 90 )
>>> waktu.tidur( 1 )
>>> print("Atur sudut menjadi 0 derajat")
Atur sudut ke 0 derajat
>>> motor.set_angle( 0 )

3. Motor stepper

Untuk menghubungkan motor stepper, kami akan mengikuti skema yang mirip dengan yang ada di gambar:

Kode kelas Stepper_Motor pada dasarnya adalah mesin negara yang mengimplementasikan tabel yang ditunjukkan di atas.

 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
kelas Stepper_Motor:
   
    def __init__( diri, pin):
        diri.pin = pin
        diri.bodoh = Sbc.Dout()
        diri.negara = 0
        diri.tangga = 0
        diri.dir = 1
        diri.Timer = mesin.pengatur waktu ( -1 )
    
    def langkah( diri, arah ):
        if( diri.negara == 0 ):
            diri.bodoh.menulis( diri.pin[0], 1 )
            diri.bodoh.menulis( diri.pin[1], 1 )
            diri.bodoh.menulis( diri.pin[2], 0 )
            diri.bodoh.menulis( diri.pin[3], 0 )
        elif( diri.negara == 1 ):
            diri.bodoh.menulis( diri.pin[0], 0 )
            diri.bodoh.menulis( diri.pin[1], 1 )
            diri.bodoh.menulis( diri.pin[2], 1 )
            diri.bodoh.menulis( diri.pin[3], 0 )
        elif( diri.negara == 2 ):
            diri.bodoh.menulis( diri.pin[0], 0 )
            diri.bodoh.menulis( diri.pin[1], 0 )
            diri.bodoh.menulis( diri.pin[2], 1 )
            diri.bodoh.menulis( diri.pin[3], 1 )
        elif( diri.negara == 3 ):
            diri.bodoh.menulis( diri.pin[0], 1 )
            diri.bodoh.menulis( diri.pin[1], 0 )
            diri.bodoh.menulis( diri.pin[2], 0 )
            diri.bodoh.menulis( diri.pin[3], 1 )
        diri.tangga += arah
        diri.negara = (diri.negara + arah) & 0x03
    
    def set_kecepatan( diri, langkah_s, arah ):
        if( langkah_s dan arah ):
            diri.Timer.init ( titik=int(1000 /langkah_s), mode=mesin.Timer.PERIODIK, panggilan balik=lambda tmr: diri.langkah (arah))
        lain:
            diri.Timer.deinit()

Akhirnya, contoh penggunaan:

>>> waktu impor
>>> impor sbc_mtr
>>> motor = sbc_mtr.Stepper_Motor( ["DOUT1", "DOUT2", "DOUT3", "DOUT4"] )
>>> print("Langkah demi langkah")
Setapak demi setapak
>>> untuk i in range( 100 ):
... motor.langkah( 1 )
... waktu.sleep_ms( 10 )
>>> print("Berkelanjutan")
Kontinu
>>> motor.set_speed( 100, -1 )
>>> waktu.tidur( 1 )
>>> motor.set_speed( 0, 0 )

Jika Anda menyukai konten ini, Anda dapat mengikuti kami di Twitter, Youtube, Facebook or LinkedIn untuk tetap update konten seperti ini.

Punya pertanyaan atau permintaan?
Hubungi kami! Kami akan menjawab <24 jam!

Ikon
Kontak ArduSimple
Penyelesaian
ArduSimple Papan evaluasi GNSS RTK dibuat mudah

Ingin mempelajari lebih lanjut tentang GPS dan RTK?

Jika Anda sedang sibuk saat ini, teknisi kami dapat mengirimkan 3 email singkat yang menjelaskan semua yang perlu Anda ketahui untuk memulai proyek Anda.