Last Updated on 3. Oktober 2026 by sfambachLink-Status: OK
Platine zur Ansteuerung von bis zu 16 Servos über den I2C Bus. Es empfiehlt sich, eine externe Spannungsquelle zu verwenden, da bei gleichzeitiger Fahrt der Servos eine Menge Strom benötigt wird.
Fakten
Anschluss I2C Bus des Arduino
| Board | Arduino Uno |
| GND | GND |
| OE | Nicht verbunden |
| SCL | A5 |
| SDA | A4 |
| VCC | +5V |
| V+ | Vin |
Anschluss I2C Bus an ESP32 NodeMCU
| Board | ESP32 Pin |
| GND | GND |
| OE | Nicht verbunden |
| SCL | Pin 39 |
| SDA | Pin 42 |
| VCC | +3V |
| V+ | Vin |
Anwendungsbereiche
- Roboter Arm
- Spinne
- Alles, bei dem mehrere Servos angesteuert werden müssen
Ansichten
Links der Anschluss zum Mikroprozessor, unten die Anschlüsse für 16 Servos.


Programmierung
Für den Testaufbau habe ich einen Arduino verwendet, genauso kann auch eine andere Platine wie der ESP herangezogen werden.
Bibliotheken
Zur Ansteuerung kann die Adafruit PWM Bibliothek verwendet werden.
https://github.com/adafruit/Adafruit-PWM-Servo-Driver-LibraryLink-Status: OK
Testprogramm
Das Testprogramm besteht aus zwei Teilen:
- (Ausdokumentiert) Zwei Schleifen, die alle Servos bewegen
- Eingabewert auf Konsole (0-180 Grad), alle Servos werden auf diesen Wert eingestellt.
Das Beispiel ist verfügbar auf GITHUB:
Hier noch der direkte Download Link:
https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/sfambach/arduino/tree/master/shields/PCA9685Link-Status: OK
Probleme
Externe Spannungsquelle
Ich habe als externe Spannungsquelle einen Lipo verwendet, dies ist keine gute Idee, solange er weniger als 5 Volt hat. Denn dann versucht die höhere Spannung vom Arduino, den LIPO zu laden, und dieser geht kaputt.
Fazit
Wenn man mal viele Servos ansteuern möchte, ist dieses Board genau das Richtige. Es ist gut beschriftet und lässt keine Fragen offen.
Verwandte Beiträge
Quellen
https://github.com/adafruit/Adafruit-PWM-Servo-Driver-LibraryLink-Status: OK
https://www.nxp.com/pages/16-channel-12-bit-pwm-fm-plus-ic-bus-led-controller:PCA9685Link-Status: Unbekannt
| Datum | Änderung | Autor |
|---|---|---|
| 03.10.2026 | Rechtschreibung korrigiert: Tippfehler, Kommas, Grammatik Log-Liste eingefügt | sfambach |
| 19.07.2019 | Beitrag erstellt | sfambach |
Hallo,
ich habe die Sache nachvollziehen können, als Vorbereitung auf ein etwa grösseres Unterfangen. Dabei sind mir zwei Dinge aufgefallen:
1. Nach einem Reset des Arduino (oder einer gleichwertigen Aktion) „zucken“ die Servos kurz. Jedoch nur, wenn sie nicht auf Position „0“ stehen.
2. Der Servo, welcher am Ausgang 0 des PCA 9685 angeschlossen ist, geht bei dieser Aktion in eine andere Stellung, und nur dieser.
Gibt es dafür eine Erklärung und vor allem eine Abhilfe?
Gruss & Dank
Peter
Hallo Struwelpeter,
Hatte auch Probleme mit zuckenden Servos beim einschalten,
bis ich auf die Servos von ESU gekommen bin. Diese zucken nicht beim einschalten. Die Servos stellen bei mir die Weichen der Eisenbahn und bin mit diesen sehr zufrieden.
Diese Servos stellen werden allerdings, nicht vom 16 Servoboard PCA9685 angetrieben, sondern von eigener Elektronik
Es gibt 2 davon. Einen mit Plaste Antrieb und einen mit Metallantrieb
Link zu den Servos:
http://www.esu.eu/produkte/switchpilot/praezisions-servoantrieb/