Was sind die Methoden zur Steuerung von Motoren mit einem Raspberry Pi?
Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.
Die Steuerung von Motoren mit einem Raspberry Pi ist ein grundlegendes Projekt für Robotik, Automatisierung und viele andere Anwendungen. Die Methode, die Sie wählen, hängt ausschließlich von der Art des Motors ab, den Sie steuern müssen.
Hier ist ein praktischer, Pi-freundlicher Überblick. Such dir deinen Motortyp aus und kombiniere ihn mit dem passenden Treiber + Verfahren.
Stromversorgung & Sicherheit (zuerst lesen)
-
Motoren niemals vom 5-V-Pin des Pi speisen. Separate Versorgung, auf Blockierstrom dimensioniert; Massen verbinden.
-
Die GPIO-Pins des Pi sind nur 3,3 V (max. ~16 mA pro Pin). GPIO steuert einen Treiber, nicht den Motor.
-
Freilaufdioden über Spulen schalten (sofern der Treiber sie nicht bereits integriert hat). Motorleitungen kurz halten, möglichst verdrillen.
1) Bürsten-Gleichstrommotoren (Brushed DC)
Einsatz, wenn: einfache Drehzahl + Drehrichtung.
Hardware-Optionen
-
Nur eine Richtung: Logik-Level-N-MOSFET (niedriger Rds_on bei 3–4 V Gate), + Diode (z. B. 1N5819) parallel zum Motor.
-
Beide Richtungen: H-Brücke (modern: TB6612FNG, DRV8833; älter/ineffizient: L298N). Oder ein DC-Motor-HAT.
Steuerung
-
Drehzahl: PWM (idealerweise 10–20 kHz, um Pfeifen zu vermeiden).
-
Richtung: H-Brücke über IN1/IN2.
Mini-Beispiel (TB6612/DRV8833-Stil)
2) Hobby-Servos (SG90, MG996R, etc.)
Einsatz, wenn: Positionsregelung (0–180°) oder (bei Dauerdrehern) Geschwindigkeitsregelung.
Hardware-Optionen
-
Direkt per GPIO mit Hardware-PWM (am besten via
pigpio
), oder I²C-PWM-Expander wie PCA9685 für viele Servos.
Steuerung
-
50 Hz, Pulsbreite ~1–2 ms.
Beispiel (ein Servo mit pigpio)
3) Schrittmotoren
Einsatz, wenn: präzise Schritte (ohne interne Rückmeldung).
Übliche Treiber: A4988, DRV8825, TMC2208/2209 (Step/Dir). Für 28BYJ-48 (unipolar): ULN2003-Board.
Steuerung
-
STEP-Impulse senden; DIR legt Richtung fest. Für weichen Lauf Beschleunigungsrampen nutzen.
Beispiel (A4988/DRV8825)
4) BLDC (bürstenlos) über ESC
Einsatz, wenn: hohe Leistung, Lüfter, Räder, Propeller.
Hardware: BLDC + ESC (Electronic Speed Controller). ESC akzeptiert Servo-ähnliches PWM.
Steuerung
-
Wie beim Servo (50 Hz). Viele ESCs benötigen eine Armierung/Kalibrierung (min → max → min).
Beispiel
5) Smarte Motorcontroller / HATs (Multi-Motor, Closed-Loop)
-
I²C/SPI-HATs: z. B. DC & Stepper HATs (PCA9685 + Treiberbrücken) — einfache Mehrmotor-Steuerung.
-
UART/USB-Controller: Roboclaw, VESC, ODrive (BLDC-FOC, Encoder-Feedback), Pololu Jrk. Ansteuerung per Serial, CAN oder USB; Strombegrenzung, PID-Regelung und Telemetrie laufen auf dem Controller, nicht auf dem Pi.
6) Rückmeldung & Regelung (Closed-Loop)
-
Encoder (Quadratur, Magnet, Hall-Index) für Drehzahl/Position.
-
Interrupt-fähige Bibliotheken nutzen (
pigpio.callback
) für zuverlässiges Zählen.
-
-
PID in Python umsetzen (
simple-pid
) oder vom smarten Controller erledigen lassen. -
Für Stepper: externe Encoder nachrüsten oder Closed-Loop-Stepper-Treiber verwenden.
Schnellwahl (Spickzettel)
Motortyp | Typischer Treiber | Ansteuerung vom Pi | Hinweise |
---|---|---|---|
Bürsten-DC | MOSFET (1-Richtung), H-Brücke (TB6612/DRV8833) | GPIO + PWM | Einfach, günstig; Diode; 10–20 kHz PWM |
Servo | GPIO-PWM oder PCA9685 | 50 Hz, 1–2 ms | Separate 5–6 V-Schiene; hoher Blockierstrom |
Stepper (bipolar) | A4988/DRV8825/TMC | STEP/DIR-Impulse | Rampen nutzen; gutes Drehmoment bei niedriger Drehzahl |
BLDC + ESC | ESC | Servo-ähnliches PWM | Kalibrieren/armen; sehr hohe Leistung möglich |
High-Power/Closed-Loop | ODrive/VESC/Roboclaw | UART/USB/CAN + API | Integriertes Current/PID/Telemetrie |
Verdrahtungs-Checkliste (spart Nerven)
-
Gemeinsame Masse zwischen Pi, Treiber-Logik und Motorversorgung.
-
Stützkondensatoren am Treiber (z. B. 100 µF Elko + 0,1 µF Keramik).
-
Motorversorgung getrennt vom Pi halten; bei gemeinsamer Netzquelle Buck-Wandler für 5 V-Logik nutzen.
-
Logik-Level-MOSFETs mit großzügiger Strom/Spannungs-Reserve.
-
Treiber kühlen; Strombegrenzung bei Stepper-Treibern korrekt einstellen (Vref).
-
EMV: Motorleitungen verdrillen, ggf. Snubber; Motorleitungen von CSI/DSI/Ribbon-Kabeln des Pi fernhalten.
Nützliche Python-Bibliotheken
-
gpiozero: High-Level-Klassen für Motor/Servo.
-
pigpio: präzise PWM/Servo + Encoder-Callbacks (Daemon-basiert).
-
RPi.GPIO: klassisch, simpel; weniger präzise PWM.
-
smbus2/adafruit-blinka: für I²C-HATs/Expander.
-
pyvesc/odrive: Kommunikation mit VESC/ODrive.
Verwandte Artikel
- ·Erstellen Sie eine Wetterstation mit Raspberry Pi und DHT22
- ·Wie installiert man Windows 11 auf Raspberry Pi?
- ·Welche Sprache ist am besten für Robotik, IoT, KI, Spiele oder Web-Apps?
- ·Raspberry Pi Pico vs Arduino Nano vs STM32 Blue Pill vs ESP32 vs STM32 Black Pill | Vergleich
- ·Kann das Raspberry Pi mit Batterien betrieben werden?
- ·An welche Display-Geräte kann sich das Raspberry Pi anschließen?
- ·Was sind die beliebtesten IoT Development Boards?
- ·Welche Programmiersprachen können Sie auf einem Raspberry Pi verwenden?
- ·Wie verwenden Sie Luftqualitätssensoren mit Arduino oder Pi?