Ein Servomotor ist ein kleiner Motor, dessen Welle sich auf einen bestimmten Winkel dreht und dort stehen bleibt. Ein normaler Gleichstrommotor dreht sich ständig; ein Servo fährt genau auf 90 Grad, wenn du 90 Grad vorgibst, und hält die Last dort. Roboterarme, Pan-Tilt-Kamerahalterungen, automatische Türschlösser und die Ruder von Modellflugzeugen werden von Servos bewegt.



In einem Servo stecken vier Teile: ein kleiner Gleichstrommotor, ein Getriebe, das die Drehzahl senkt und das Drehmoment erhöht, ein Potentiometer, das die Wellenposition misst, und eine Steuerschaltung, die alles regelt. Die Steuerschaltung vergleicht ständig den Sollwinkel mit dem vom Potentiometer gemessenen Winkel und dreht den Motor, bis die Differenz null ist. Dank dieses Regelkreises hält der Servo seine Position auch unter Last.
Der Winkel wird per PWM-Signal übertragen: Alle 20 ms (50 Hz) kommt ein Impuls, und die Impulsbreite bestimmt den Winkel. Etwa 1 ms entspricht 0°, 1,5 ms 90° und 2 ms 180°. Die meisten Servos akzeptieren 0,5–2,5 ms; die genauen Werte unterscheiden sich je nach Modell etwas.
Lerne, wie ein Servo einen Winkel anfährt, wofür seine Kabel da sind, wie du ihn mit Arduino steuerst und warum er oft eine eigene Stromversorgung braucht.
Was ist ein Servomotor, wie funktioniert er und wie schließt man ihn an den Arduino an? SG90, MG90S und MG996R im Vergleich, die Servo-Bibliothek, Stromversorgung und typische Fehler.
| Kabelfarbe | Funktion | Anschluss am Arduino |
|---|---|---|
| Braun / schwarz | GND (Masse) | GND |
| Rot | Versorgung (+4,8–6 V) | 5V oder externe 5–6-V-Quelle |
| Orange / gelb / weiß | Signal (PWM) | Beliebiger Digitalpin (z. B. 9) |

| Modell | Drehmoment (ca.) | Getriebe | Geeignet für |
|---|---|---|---|
| SG90 | 1,8 kg·cm | Kunststoff | Leichte Aufgaben, erste Versuche, Pan-Tilt |
| MG90S | 2,2 kg·cm | Metall | Gleiche Größe wie SG90, robuster |
| MG996R | 9–11 kg·cm | Metall | Roboterarme, schwere Klappen und Mechaniken |
| FS90R | 1,5 kg·cm | Kunststoff | Endlosdrehung: kleine Roboter mit Rädern |


#include <Servo.h>
Servo servo; // servo nesnesi / servo object
const int POT_PIN = A0; // potansiyometre / potentiometer
void setup() {
servo.attach(9); // sinyal 9. pinde / signal on pin 9
}
void loop() {
int value = analogRead(POT_PIN); // 0–1023 oku / read 0–1023
int angle = map(value, 0, 1023, 0, 180); // açıya çevir / convert to angle
servo.write(angle); // servoyu döndür / move the servo
delay(15); // servo yetişsin / let the servo settle
}servo.write(Winkel) nimmt einen Winkel von 0 bis 180. Für feinere Steuerung gibst du mit servo.writeMicroseconds(1500) die Impulsbreite direkt in Mikrosekunden vor. Welche Pins deines Boards PWM und digital sind, zeigt dir das Pinout-Werkzeug.
Was du mit Servos bauen kannst, zeigen dir die Roboter- und Motorprojekte auf BlueGrays. Wenn du neu bei Arduino bist, lies zuerst Was ist Arduino? und für den Aufbau Was ist ein Steckbrett?.
Standard-Servos drehen etwa 180°, manche Modelle 90° oder 270°. Servos mit Endlosdrehung drehen unbegrenzt, halten aber keinen Winkel.
Einen einzelnen SG90 mit leichter Last zum Testen ja. Für mehrere Servos, kräftige Modelle wie den MG996R oder Projekte unter Last nimm eine externe 5–6-V-Quelle und verbinde die Massen.
Die Servo-Bibliothek unterstützt am Arduino Uno bis zu 12, am Mega bis zu 48 Servos. Für viele Servos sind 16-Kanal-I2C-Treiberboards wie der PCA9685 praktischer.
Die häufigsten Gründe sind zu schwache Versorgung, fehlende gemeinsame Masse und lange Signalkabel. Nutze eine kräftige Quelle, setze einen Kondensator an die Servoversorgung und halte die Kabel kurz.
Ein Servo fährt dank Rückmeldung einen bestimmten Winkel an und bleibt dort, meist begrenzt auf 180°. Ein Schrittmotor dreht schrittweise ohne Begrenzung; für genaue Positionierung braucht er einen Treiber und misst seine Position nicht selbst.