16 Servoboard PCA9685

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

BoardArduino Uno
GNDGND
OENicht verbunden
SCLA5
SDAA4
VCC+5V
V+Vin

Anschluss I2C Bus an ESP32 NodeMCU

BoardESP32 Pin
GNDGND
OENicht verbunden
SCLPin 39
SDAPin 42
VCC+3V
V+Vin

Anwendungsbereiche

  • Roboter Arm
  • Spinne
  • Alles bei dem mehrere Servos angesteuert werden müssen

Ansichten

Links der Anschluss zum Mircoprozessor, 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-Library

Testprogramm

Das Testprogramm besteht aus zwei Teilen:

  1. (Ausdokumentiert) Zwei schleifen die alle Servos bewegen
  2. Eingabe Wert auf Konsole (0-180 Grad), alle Servos werden auf diesen Wert eingestellt.

Das Beispiel ist Verfügbar auf GITHUB:

https://github.com/sfambach/arduino/blob/master/shields/PCA9685

Hier noch der direkte Download Link:

https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/sfambach/arduino/tree/master/shields/PCA9685

Probleme

Erterne Spannungquelle

Ich habe als externe Spannungsquelle einen Lipo verwendet, dies ist keine gute Idee solang er weniger als 5 Volt hat. Da dann die höhere Spannung vom Arduino versucht den LIPO zu laden, und dieser kaputt geht.

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-Library

https://www.nxp.com/pages/16-channel-12-bit-pwm-fm-plus-ic-bus-led-controller:PCA9685

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.