ikona samolotu
Wysyłka do:
Wysyłka następnego dnia z Europy z DHL. Otrzymasz swoje zamówienie na całym świecie w ciągu 2-4 dni!
Kupuj online i otrzymaj przesyłkę w ciągu 2–4 dni za pośrednictwem naszych lokalnych partnerów. To tak, jakbyś robił zakupy lokalnie!
Wysyłamy z Europy za pośrednictwem DHL, dzięki czemu Twoje zamówienie zostanie dostarczone bez niespodzianek w ciągu 1-3 dni!
Wysyłka następnego dnia z Europy z DHL. Otrzymasz swoje zamówienie w ciągu 14-21 dni!
Dostarczamy do Singapuru w ciągu 2-4 dni roboczych. Potrzebujesz pomocy? Skontaktuj się z naszym zespołem pod numerem +65 3174 3631.
Dostawy do Hongkongu realizujemy za pośrednictwem DHL w ciągu 2-4 dni roboczych. Potrzebujesz pomocy? Skontaktuj się z naszym zespołem pod numerem +852 5808 4561.
Dostarczamy do Chin w ciągu 2-4 dni roboczych. Potrzebujesz pomocy? Skontaktuj się z naszym zespołem pod numerem +86 18367375467.
Dostarczamy na Tajwan w ciągu 2-4 dni roboczych. Potrzebujesz pomocy? Skontaktuj się z naszym zespołem pod numerem +886 2 7734 4400.
Aktualizacja (22 / 01 / 2026): Posiadamy duży zapas wszystkich naszych produktów, znajdziesz nas również w oraz    Kup teraz

Podłącz różne silniki do swojego SBC

W tym samouczku zobaczymy, jak podłączyć najpopularniejsze typy silników do SBC. Na kilku przykładach pokażemy Ci również, jak sobie z nimi radzić. Najczęstsze typy silników to:

  • Silniki prądu stałego są tanie i łatwe w sterowaniu, potrzebne jest tylko jedno wyjście zasilania, które można aktywować sygnałem PWM.

  • Serwosilniki są podobne do silników prądu stałego, ale zawierają małą elektronikę i wewnętrzny potencjometr tworzący zamkniętą pętlę sterowania, co pozwala kontrolować kąt obrotu. Sterowanie odbywa się również przez PWM, ale w tym przypadku sygnał sterujący ma małą moc, a stopień mocy jest zintegrowany w samym serwomotorze.

  • Silniki krokowe mają kilka uzwojeń i wymagają sterowania sekwencją, ale w zamian zapewniają dużą precyzję, ponieważ przesuwają się krok po kroku za każdym razem, gdy polaryzacja ich uzwojeń jest odwrócona.

1. Silniki prądu stałego

Aby sterować silnikiem prądu stałego, podłączymy go do SBC, jak pokazano na poniższym schemacie:

Będziemy musieli znać niektóre parametry naszego silnika, w szczególności związek między przyłożonymi woltami a prędkością silnika lub Kv.

Klasa Dc_Motor reprezentuje silnik prądu stałego, sterowany przez PWM przy 50 Hz. Jak widać, należy podać pewne parametry, takie jak napięcie zasilania i stała Kv, a także pin, który ma być użyty. W zamian otrzymujemy dwie funkcje: set_voltage i set_speed.

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
klasa Silnik prądu stałego: FREQ_Hz = 50
    def __init__( samego siebie, szpilka, vm, kv ):
        samego siebie.vm = vm
        samego siebie.kv = kv
        samego siebie.sosna = sosna
        samego siebie.niepewność = Sbc.Dout()
        samego siebie.niepewność.set_pwm( samego siebie.Szpilka, samego siebie.FREQ_Hz, 0 )
        samego siebie.ustaw_napięcie( 0 )
    
    def ustawione_napięcie( samego siebie, v ): puls_procent_włączony = 100 *v/samego siebie.vm
        samego siebie.niepewność.set_pwm( samego siebie.Szpilka, samego siebie.FREQ_Hz, 100-puls_procent_włączony )
    
    def Ustaw prędkość( samego siebie, obr/min ):
        samego siebie.ustawione_napięcie (rpm/samego siebie.kv)

Przykładem użycia może być:

>>> czas importu
>>> importuj sbc_mtr
>>> silnik = sbc_mtr.Dc_Motor( "DOUT3", vm=12, kv=0.5 )
>>> print( "Kontrola napięcia" )
Kontrola napięcia
>>> nap.silnika( 6 )
>>> czas.sen( 1 )
>>> nap.silnika( 0 )
>>> print( "Kontrola prędkości" )
Kontrola prędkości
>>> motor.set_speed( 100 )
>>> czas.sen( 1 )
>>> motor.set_speed( 0 )

2. Serwosilniki

Serwomotor wykorzystuje pojedynczy pin sterujący do sterowania kątem obrotu silnika.

 Kod klasy Servo_Motor:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
klasa Siłownik: FREQ_Hz = 50
    DUTY_MIN_ms = 0.5
    DUTY_MAX_ms = 2.5
    
    def __init__( samego siebie, szpilka ):
        samego siebie.sosna = sosna
        samego siebie.niepewność = Sbc.Dout()
        samego siebie.niepewność.set_pwm( samego siebie.Szpilka, samego siebie.FREQ_Hz, 0 )
        
    def ustawiony_kąt( samego siebie, kąt_stopnia ): obowiązek_ms = samego siebie.DUTY_MIN_ms + (samego siebie.DUTY_MAX_ms-samego siebie.DUTY_MIN_ms)*kąt_stopnia/ 180
        puls_procent_włączony = samego siebie.CZĘSTOTLIWOŚĆ_Hz*obowiązek_ms/ 10
        samego siebie.niepewność.set_pwm( samego siebie.Szpilka, samego siebie.FREQ_Hz, 100-puls_procent_włączony )

I jeden przykład użycia:

>>> czas importu
>>> importuj sbc_mtr
>>> silnik = sbc_mtr.Servo_Motor( "DOUT3" )
>>> print( "Ustaw kąt na 90 stopni" )
Ustaw kąt na 90 stopni
>>> motor.set_angle( 90 )
>>> czas.sen( 1 )
>>> print( "Ustaw kąt na 0 stopni" )
Ustaw kąt na 0 stopni
>>> motor.set_angle( 0 )

3. Silniki krokowe

Aby podłączyć silnik krokowy, zastosujemy schemat podobny do tego na rysunku:

Kod klasy Stepper_Motor jest w zasadzie maszyną stanów, która implementuje powyższą tabelę.

 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
klasa Silnik krokowy:
   
    def __init__( samego siebie, szpilki ):
        samego siebie.kołki = kołki
        samego siebie.niepewność = Sbc.Dout()
        samego siebie.były = 0
        samego siebie.kroki = 0
        samego siebie.reż = 1
        samego siebie.Timer = maszyna.Regulator czasowy( -1 )
    
    def krok( samego siebie, kierunek ):
        if( samego siebie.były == 0 ):
            samego siebie.niepewność.pisać( samego siebie.szpilki0], 1 )
            samego siebie.niepewność.pisać( samego siebie.szpilki1], 1 )
            samego siebie.niepewność.pisać( samego siebie.szpilki2], 0 )
            samego siebie.niepewność.pisać( samego siebie.szpilki3], 0 )
        Elif( samego siebie.były == 1 ):
            samego siebie.niepewność.pisać( samego siebie.szpilki0], 0 )
            samego siebie.niepewność.pisać( samego siebie.szpilki1], 1 )
            samego siebie.niepewność.pisać( samego siebie.szpilki2], 1 )
            samego siebie.niepewność.pisać( samego siebie.szpilki3], 0 )
        Elif( samego siebie.były == 2 ):
            samego siebie.niepewność.pisać( samego siebie.szpilki0], 0 )
            samego siebie.niepewność.pisać( samego siebie.szpilki1], 0 )
            samego siebie.niepewność.pisać( samego siebie.szpilki2], 1 )
            samego siebie.niepewność.pisać( samego siebie.szpilki3], 1 )
        Elif( samego siebie.były == 3 ):
            samego siebie.niepewność.pisać( samego siebie.szpilki0], 1 )
            samego siebie.niepewność.pisać( samego siebie.szpilki1], 0 )
            samego siebie.niepewność.pisać( samego siebie.szpilki2], 0 )
            samego siebie.niepewność.pisać( samego siebie.szpilki3], 1 )
        samego siebie.kroki += kierunek
        samego siebie.były = (samego siebie.były + kierunek) & 0x03
    
    def Ustaw prędkość( samego siebie, kroki_s, kierunek ):
        if( kroki_s oraz kierunek ):
            samego siebie.Timer.początek( okres=int(1000 /kroki_s), tryb=maszyna.Regulator czasowy.OKRESOWE, oddzwonienie=lambda TMR: samego siebie.krok (kierunek) )
        więcej:
            samego siebie.Timer.deinicja()

Na koniec przykład użycia:

>>> czas importu
>>> importuj sbc_mtr
>>> motor = sbc_mtr.Stepper_Motor( ["WYJ1", "WYJ2", "WYJ3", "WYJ4"] )
>>> print( "Krok po kroku" )
Krok po kroku
>>> dla i w zakresie( 100 ):
...silnik.krok( 1 )
... czas.sleep_ms( 10 )
>>> print( "Ciągły" )
Ciągły
>>> motor.set_speed( 100, -1 )
>>> czas.sen( 1 )
>>> motor.set_speed( 0, 0 )

Jeśli podobały Ci się te treści, możesz nas śledzić Twitter, YouTube, Facebook or LinkedIn aby być na bieżąco z takimi treściami.

Masz pytania lub prośby?
Skontaktuj się z nami! Odpowiemy <24 godziny!

Ikona
Kontakt ArduSimple
Zamknij

Chcesz dowiedzieć się więcej o GPS/RTK?

1. Nasz zespół inżynierów skontaktuje się z Tobą w celu rozwiązania wszelkich pytań
2. Będziemy na bieżąco informować Cię o promocjach i nowościach produktowych
3. Dowiesz się od nas tylko wtedy, gdy będziemy mieć ważne wiadomości, nie będziemy spamować Twojego e-maila