So steuern Sie einen Mikroservomotor mit einem Raspberry Pi: Eine vollständige Anleitung_Custom Drive_Industry Insights_Kpower
Heim > Brancheneinblicke >Benutzerdefiniertes Laufwerk
TECHNISCHE UNTERSTÜTZUNG

Produktunterstützung

So steuern Sie einen Mikroservomotor mit einem Raspberry Pi: Eine vollständige Anleitung

Veröffentlicht 2026-04-20

Diese Anleitung enthält Schritt-für-Schritt-Anleitungen zum Anschließen und Steuern eines MikrosServoMotor mit einem Raspberry Pi. Sie lernen die richtige Verkabelung, Python-Codebeispiele und praktische Lösungen für häufige Probleme. Alle Informationen basieren auf standardmäßigen elektronischen Verfahren und werden durch Tests in der Praxis überprüft.

01Was Sie brauchen, bevor Sie beginnen

Ein Raspberry Pi (jedes Modell mit GPIO-Pins, z. B. 3B+, 4 oder 5)

Ein MikroServoMotor (üblicher Typ: 9gServo, 3-Leiter)

Überbrückungsdrähte (Buchse zu Buchse)

Externe 5-V-Stromquelle (optional, aber für stabilen Betrieb empfohlen)

Ein kleines Potentiometer (optional, zum Beispiel für manuelle Steuerung)

Wichtiger Sicherheitshinweis:Schalten Sie das nicht einMikroservodirekt vom 5-V-Pin des Raspberry Pi, wenn Sie das Servo unter Last oder über längere Zeiträume betreiben. Der 5-V-Ausgang des Pi kann nur etwa 500 mA liefern, und aMikroservokann während der Bewegung 200–400 mA ziehen. Verwenden Sie ein separates 5-V-Netzteil (z. B. 4xAA-Batterien oder eine 5-V-USB-Powerbank) und verbinden Sie die Masse dieser Versorgung mit der Masse des Pi.

02Verdrahtungsplan (Schritt für Schritt)

Befolgen Sie diese drei Zusammenhänge genau. DerMikroservohat drei Drähte:

Braun oder Schwarz→ Masse (GND)

Rot→ 5-V-Stromversorgung (externe Versorgung oder 5-V-Pin des Pi nur zum Testen)

Orange oder Gelb→ GPIO-Pin (z. B. GPIO18)

Servokabel Verbinden mit
Braun/Schwarz Raspberry Pi GND (Pin 6) UND externe Stromversorgung GND
Rot Externe 5V positiv (oder Pi Pin 2 für Lichttests)
Orange/Gelb GPIO18 (Pin 12)

Häufiges Fallbeispiel:Ein Bastler hat versucht, zwei Mikroservos direkt über den 5-V-Pin des Pi mit Strom zu versorgen. Die Servos zuckten unregelmäßig und der Pi startete neu. Nachdem ein separater 5-V-Akku (4xAA) hinzugefügt und alle Massen miteinander verbunden wurden, funktionierten beide Servos stundenlang reibungslos.

03Wie ein Mikroservo funktioniert

Ein Mikroservomotor enthält einen Gleichstrommotor, ein Potentiometer (Positionssensor) und einen Steuerkreis. Es nutztPulsweitenmodulation (PWM)um den Wellenwinkel einzustellen. Das Servo erwartet ein 50Hz-Signal (20ms-Periode). Die Impulslänge bestimmt den Winkel:

0,5 ms Impuls → 0 Grad

1,5 ms Impuls → 90 Grad (Mitte)

2,5 ms Impuls → 180 Grad

Die meisten Mikroservos haben einen physikalischen Bereich von etwa 180 Grad, einige betragen jedoch auch 90 oder 270 Grad. Testen Sie die Grenzen immer zuerst ohne Last.

04Software-Setup (Raspberry Pi OS)

1. Aktivieren Sie die PWM-Hardware auf dem Raspberry Pi. Öffnen Sie ein Terminal und führen Sie Folgendes aus:

sudo raspi-config

Navigieren Sie zu: Schnittstellenoptionen → Remote-GPIO → Ja → Fertig stellen.

2. Installieren Sie die RPi.GPIO-Bibliothek (auf den meisten Raspberry Pi OS-Versionen vorinstalliert). Für eine vollständige PWM-Steuerung installieren Sie pigpio:

sudo apt update sudo apt install pigpio python3-pigpio sudo systemctl enable pigpiod sudo systemctl starte pigpiod

05Grundlegender Python-Code zum Sweepen des Servos

Erstellen Sie eine Datei mit dem Namenservo_sweep.py:

import pigpio import time # Mit Pigpio-Daemon verbinden pi = pigpio.pi() wenn nicht pi.connected: print("Pigpio-Daemon läuft nicht. Beginnen Sie mit: sudo pigpiod") exit() # GPIO-Pin festlegen (mit GPIO18) SERVO_PIN = 18 # Impulsbreite in Mikrosekunden definieren (500 = 0,5 ms, 2500 = 2,5 ms) def set_angle(angle): # Winkel (0-180) in Impulsbreite (500-2500) umwandeln Impuls = 500 + (Winkel / 180,0)2000 pi.set_servo_pulsewidth(SERVO_PIN, Pulse) try: while True: für Winkel im Bereich(0, 181, 10): set_angle(angle) time.sleep(0.1) für Winkel im Bereich(180, -1,-10): set_angle(angle) time.sleep(0.1) außer KeyboardInterrupt: print("Stopping...") pi.set_servo_pulsewidth(SERVO_PIN, 0) # PWM-Signal stoppen pi.stop()

Führen Sie den Code aus:

sudo pigpiod # falls nicht bereits python3 servo_sweep.py ausgeführt wird

Erwartetes Ergebnis:Der Servoarm bewegt sich von 0 auf 180 Grad und zurück und pausiert bei jedem 10-Grad-Schritt 0,1 Sekunden.

06Steuern des Servos mit einem Potentiometer (manuelle Echtzeitsteuerung)

In diesem Beispiel können Sie ein Potentiometer drehen, um das Servo zu positionieren. Verdrahten Sie ein 10-kΩ-Potentiometer: Linker Pin an 3,3 V, rechter Pin an GND, mittlerer Pin an GPIO17 (ADC-Eingang). Da der Raspberry Pi keine analogen Eingänge hat, verwenden wir einen MCP3008 ADC-Chip oder eine einfache RC-Timing-Methode. Nachfolgend finden Sie die RC-Timing-Methode (kein zusätzlicher Chip erforderlich).

Schließen Sie einen 1μF-Kondensator zwischen GPIO23 und GND und einen 10kΩ-Widerstand von GPIO23 an den Potentiometerschleifer an. Das ist fortgeschritten. Verwenden Sie der Einfachheit halber einen MCP3008 mit SPI. Allerdings ein häufiger Fall: Viele Anfänger scheitern daran, dass sie versuchen, direkt analog zu lesen.Empfehlung:Verwenden Sie einen kostengünstigen ADC wie MCP3008 oder kaufen Sie eine Servotreiberplatine.

Hier ist ein zuverlässiger Code mit einem MCP3008:

import pigpio import time import spidev spi = spidev.SpiDev() spi.open(0, 0) spi.max_speed_hz = 1350000 def read_adc(channel): ifchannel 7: return -1 adc = spi.xfer2([1, (8+channel) 2000 pi.set_servo_pulsewidth(SERVO_PIN, pulse) try: while True: value = read_adc(0) # Potentiometer auf Kanal 0 angle = (value / 1023.0) * 180 set_angle(angle) time.sleep(0.02) außer KeyboardInterrupt: pi.set_servo_pulsewidth(SERVO_PIN, 0) pi.stop() spi.close()

07Häufige Probleme und Lösungen

Problem Höchstwahrscheinliche Ursache Lösung
Servo zuckt oder bewegt sich nicht Unzureichende Leistung Verwenden Sie eine externe 5-V-Versorgung (maximal 2 A für mehrere Servos). Masse anschließen.
Servo bewegt sich nur zu einem Ende Falscher Pulsbereich Einige Servos benötigen 600-2400μs. Test im Code: 500 in 600 und 2500 in 2400 ändern.
Zittern im Ruhezustand PWM-Frequenz oder Timing-Jitter Verwenden Sie Pigpio (Hardware-zeitgesteuertes PWM) anstelle des Software-PWM von RPi.GPIO.
Servo wird heiß Blockierstrom oder falsches Signal Last trennen. Überprüfen Sie, ob die Impulse nach der Bewegung stoppen (auf 0 setzen).
Python-Fehler „Kein Modul namens pigpio“ Fehlende Bibliothek Laufen:sudo pip3 installiere pigpioDannsudo apt install pigpio

08Optimierung für mehrere Mikroservos

Um bis zu 16 Mikroservos zu steuern, verwenden Sie eine spezielle PWM-Treiberplatine (ohne Markennamen zu nennen, suchen Sie nach „16-Kanal-PWM-Servotreiber I2C“). Verbinden Sie es über I2C. Der Treiber benötigt nur zwei GPIO-Pins (SDA/SCL) und eine externe 5-V-Versorgung. Jedes Servo erhält einen eigenen Signalpin. Dadurch werden Jitter und CPU-Last eliminiert.

09Umsetzbare Empfehlungen

1. Beginnen Sie immer mit einem Servo und einer externen 5V-Stromversorgung.Testen Sie den Sweep-Code, bevor Sie Ihre eigene Logik hinzufügen.

2. Verwenden Sie pigpio für alle Servoprojekte.Es bietet hardwaregetaktetes PWM mit Mikrosekunden-Präzision, was für eine reibungslose Bewegung unerlässlich ist.

3. Stellen Sie den Servoimpuls auf 0 (aus), wenn er sich nicht bewegt.Dies reduziert den Stromverbrauch und verhindert eine Überhitzung.

4. Fügen Sie einen 1000μF-Kondensator zwischen den Stromversorgungsklemmen hinzu(Plus und Masse) in der Nähe des Servos, um Spannungsspitzen auszugleichen.

5. Verwenden Sie für batteriebetriebene Projekte 4x wiederaufladbare NiMH-AA-Batterien(4,8 V) oder ein geregelter 5 V UBEC. Verwenden Sie keine 6 V, es sei denn, das Servo ist dafür ausgelegt (die meisten Mikroservos akzeptieren 4,8–6,0 V).

10Abschluss

Die Steuerung eines Mikroservomotors mit einem Raspberry Pi erfordert eine korrekte Verkabelung, eine externe Stromquelle für zuverlässigen Betrieb und die Pigpio-Bibliothek für genaue PWM-Signale. Die Kernschritte sind: Masse und Strom ordnungsgemäß anschließen, GPIO18 für PWM verwenden, Python-Code schreiben, der Winkel auf Impulsbreiten zwischen 500 und 2500 Mikrosekunden abbildet, und immer zuerst ohne Last testen.

Letzte Aktionsschritte:

Bauen Sie die Schaltung mit einem separaten 5-V-Batteriepack auf.

Installieren Sie pigpio und führen Sie den Sweep-Code aus.

Ändern Sie den Code, um die Servosteuerung in Ihr eigenes Projekt zu integrieren (Roboterarm, Schwenk-Neige-Kamera oder automatische Zuführung).

Wenn Sie Jitter bemerken, wechseln Sie von RPi.GPIO zu Pigpio.

Fügen Sie für mehrere Servos eine PWM-Treiberplatine hinzu.

Wenn Sie dieser Anleitung folgen, erreichen Sie mit Ihrem Raspberry Pi eine stabile und präzise Steuerung jedes Standard-Mikroservomotors.

Aktualisierungszeit: 20.04.2026

Die Zukunft vorantreiben

Wenden Sie sich an den Produktspezialisten von Kpower, um einen geeigneten Motor oder ein geeignetes Getriebe für Ihr Produkt zu empfehlen.

Mail an Kpower
Anfrage senden
WhatsApp-Nachricht
+86 0769 8399 3238
 
kpowerMap