Flugzeug-Symbol
Versand in
Versand aus Europa mit DHL am nächsten Tag. Ihre Bestellung erreicht Sie weltweit in 2–4 Tagen!
Online kaufen und innerhalb von 2-4 Tagen über unsere lokalen Partner liefern lassen – wie Einkaufen vor Ort!
Wir versenden aus Europa mit DHL, erhalten Sie Ihre Bestellung ohne Überraschungen in 1-3 Tagen!
Versand aus Europa mit DHL am nächsten Tag. Erhalten Sie Ihre Bestellung in 14–21 Tagen!
Wir liefern nach Singapur innerhalb von 2–4 Werktagen. Benötigen Sie Hilfe? Kontaktieren Sie unser Team unter +65 3174 3631.
Wir liefern nach Hongkong mit DHL innerhalb von 2–4 Werktagen. Benötigen Sie Hilfe? Kontaktieren Sie unser Team unter +852 5808 4561.
Wir liefern nach China innerhalb von 2–4 Werktagen. Benötigen Sie Hilfe? Kontaktieren Sie unser Team unter +86 18367375467.
Wir liefern nach Taiwan innerhalb von 2–4 Werktagen. Benötigen Sie Hilfe? Kontaktieren Sie unser Team unter +886 2 7734 4400.
Aktualisierung (19 / 01 / 2026): Wir haben alle unsere Produkte auf Lager, finden Sie uns auch in und    Jetzt shoppen

Verbinden Sie verschiedene Motoren mit Ihrem SBC

In diesem Tutorial erfahren Sie, wie Sie die gängigsten Motortypen an den anschließen SBC. Außerdem zeigen wir Ihnen anhand einiger Beispiele, wie Sie damit umgehen. Die gängigsten Motortypen sind:

  • Gleichstrommotoren sind billig und einfach zu steuern, es wird nur ein Leistungsausgang benötigt und dieser kann mit einem PWM-Signal aktiviert werden.

  • Servomotoren ähneln Gleichstrommotoren, enthalten jedoch eine kleine Elektronik und ein internes Potentiometer, um einen geschlossenen Regelkreis zu bilden, mit dem der Drehwinkel gesteuert werden kann. Die Ansteuerung erfolgt ebenfalls per PWM, allerdings ist in diesem Fall das Ansteuersignal leistungsarm und die Endstufe im Stellmotor selbst integriert.

  • Schrittmotoren haben mehrere Wicklungen und erfordern eine zu steuernde Sequenz, bieten dafür aber eine hohe Präzision, da sie bei jedem Umpolen ihrer Wicklungen Schritt für Schritt vorrücken.

1. Gleichstrommotoren

Um einen Gleichstrommotor zu steuern, schließen wir ihn an den SBC an, wie im folgenden Diagramm dargestellt:

Wir müssen einige Parameter unseres Motors kennen, insbesondere die Beziehung zwischen angelegter Spannung und Motordrehzahl oder Kv.

Die Dc_Motor-Klasse stellt den DC-Motor dar, der von einem PWM bei 50 Hz gesteuert wird. Wie zu sehen ist, müssen einige Parameter angegeben werden, wie die Versorgungsspannung und die Kv-Konstante, sowie der zu verwendende Pin. Dafür erhalten wir zwei Funktionen: set_voltage und set_speed.

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Klasse Gleichspannungs Motor: FREQ_Hz = 50
    def __init__( selbst, pin, vm, kv ):
        selbst.vm = vm
        selbst.kv = kv
        selbst.Stift = Stift
        selbst.Zweifel = SBC.Dout()
        selbst.Zweifel.set_pwm( selbst.Stift, selbst.FREQ_Hz, 0 )
        selbst.set_spannung( 0 )
    
    def set_spannung( selbst, v ): pulse_percent_on = 100 *v/selbst.vm
        selbst.Zweifel.set_pwm( selbst.Stift, selbst.FREQ_Hz, 100-puls_percent_on )
    
    def Geschwindigkeit einstellen( selbst, Drehzahl ):
        selbst.set_voltage (rpm/selbst.kv)

Ein Anwendungsbeispiel wäre folgendes:

>>> Importzeit
>>> sbc_mtr importieren
>>> motor = sbc_mtr.Dc_Motor( "DOUT3", vm=12, kv=0.5 )
>>> print( "Spannungsregelung" )
Spannungsregelung
>>> motor.set_voltage( 6 )
>>> time.sleep( 1 )
>>> motor.set_voltage( 0 )
>>> print( "Geschwindigkeitsregelung" )
Drehzahlregelung
>>> motor.set_speed( 100 )
>>> time.sleep( 1 )
>>> motor.set_speed( 0 )

2. Servomotoren

Der Servomotor verwendet einen einzigen Steuerstift, um den Drehwinkel eines Motors zu steuern.

 Der Code der Klasse Servo_Motor:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Klasse Servomotor: FREQ_Hz = 50
    DUTY_MIN_ms = 0.5
    DUTY_MAX_ms = 2.5
    
    def __init__( selbst, Stift ):
        selbst.Stift = Stift
        selbst.Zweifel = SBC.Dout()
        selbst.Zweifel.set_pwm( selbst.Stift, selbst.FREQ_Hz, 0 )
        
    def set_angle( selbst, angle_deg ): duty_ms = selbst.DUTY_MIN_ms + (selbst.DUTY_MAX_ms-selbst.DUTY_MIN_ms)*angle_deg/ 180
        puls_percent_on = selbst.FREQ_Hz*Pflicht_ms/ 10
        selbst.Zweifel.set_pwm( selbst.Stift, selbst.FREQ_Hz, 100-puls_percent_on )

Und ein Anwendungsbeispiel:

>>> Importzeit
>>> sbc_mtr importieren
>>> motor = sbc_mtr.Servo_Motor( "DOUT3" )
>>> print( "Winkel auf 90 Grad setzen" )
Winkel auf 90 Grad einstellen
>>> motor.set_angle( 90 )
>>> time.sleep( 1 )
>>> print( "Winkel auf 0 Grad setzen" )
Winkel auf 0 Grad einstellen
>>> motor.set_angle( 0 )

3. Schrittmotoren

Um einen Schrittmotor anzuschließen, folgen wir einem Schema ähnlich dem in der Abbildung:

Der Klassencode Stepper_Motor ist im Grunde eine Zustandsmaschine, die die oben gezeigte Tabelle implementiert.

 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
Klasse Schrittmotor:
   
    def __init__( selbst, Stifte ):
        selbst.Stifte = Stifte
        selbst.Zweifel = SBC.Dout()
        selbst.Zustand = 0
        selbst.Schritte = 0
        selbst.dir = 1
        selbst.Timer = Maschine.Timer( -1 )
    
    def Step( selbst, Richtung ):
        if( selbst.Zustand == 0 ):
            selbst.Zweifel.schreiben( selbst.Stifte[0], 1 )
            selbst.Zweifel.schreiben( selbst.Stifte[1], 1 )
            selbst.Zweifel.schreiben( selbst.Stifte[2], 0 )
            selbst.Zweifel.schreiben( selbst.Stifte[3], 0 )
        elif( selbst.Zustand == 1 ):
            selbst.Zweifel.schreiben( selbst.Stifte[0], 0 )
            selbst.Zweifel.schreiben( selbst.Stifte[1], 1 )
            selbst.Zweifel.schreiben( selbst.Stifte[2], 1 )
            selbst.Zweifel.schreiben( selbst.Stifte[3], 0 )
        elif( selbst.Zustand == 2 ):
            selbst.Zweifel.schreiben( selbst.Stifte[0], 0 )
            selbst.Zweifel.schreiben( selbst.Stifte[1], 0 )
            selbst.Zweifel.schreiben( selbst.Stifte[2], 1 )
            selbst.Zweifel.schreiben( selbst.Stifte[3], 1 )
        elif( selbst.Zustand == 3 ):
            selbst.Zweifel.schreiben( selbst.Stifte[0], 1 )
            selbst.Zweifel.schreiben( selbst.Stifte[1], 0 )
            selbst.Zweifel.schreiben( selbst.Stifte[2], 0 )
            selbst.Zweifel.schreiben( selbst.Stifte[3], 1 )
        selbst.Schritte += Richtung
        selbst.Zustand = (selbst.Zustand + Richtung) & 0x03
    
    def Geschwindigkeit einstellen( selbst, Schritte_s, Richtung ):
        if( Schritte_s und Richtung):
            selbst.Timer.init( zeitraum=int(1000 /steps_s), Modus=Maschine.Timer.PERIODISCH, Rückruf=Lambda tmr: selbst.Schritt (Richtung) )
        sonst:
            selbst.Timer.deinit()

Abschließend ein Anwendungsbeispiel:

>>> Importzeit
>>> sbc_mtr importieren
>>> motor = sbc_mtr.Stepper_Motor ( ["DOUT1", "DOUT2", "DOUT3", "DOUT4"] )
>>> print( "Schritt für Schritt" )
Schritt für Schritt
>>> für i im Bereich ( 100 ):
... motor.step( 1 )
... time.sleep_ms( 10 )
>>> print( "Fortlaufend" )
Kontinuierlich
>>> motor.set_speed( 100, -1 )
>>> time.sleep( 1 )
>>> motor.set_speed( 0, 0 )

Wenn Ihnen dieser Inhalt gefallen hat, können Sie uns weiter folgen Twitter, YouTube, Facebook or LinkedIn um über solche Inhalte auf dem Laufenden zu bleiben.

Haben Sie Fragen oder Wünsche?
Kontaktiere uns! Wir antworten <24 Stunden!

Icon
Kontaktieren ArduSimple
Menu

Möchten Sie mehr über GPS/RTK erfahren?

1. Unser Engineering-Team wird sich mit Ihnen in Verbindung setzen, um alle Fragen zu klären
2. Wir halten Sie über Werbeaktionen und neue Produktveröffentlichungen auf dem Laufenden
3. Sie hören nur von uns, wenn wir wichtige Neuigkeiten haben, wir spammen Ihre E-Mail nicht zu