4.0 Wiring Guide Arduino Uno and PCA9685 Servo Driver - SwollEngineAF/lipan GitHub Wiki
This wiki page documents the hardware wiring for connecting an Arduino Uno to a PCA9685 16-channel PWM servo driver. This setup is used for controlling multiple servo motors in the Lipan 2.0 robot platform.
-
Board: Arduino Uno R3 (clone)
-
Power Source: USB (for uploading code and logic power)
-
Servo Power Source: External battery pack (connected to PCA9685 V+ and GND)
PCA9685 Pin | Arduino Connection | Function |
---|---|---|
VCC | 5V | Logic power |
GND | GND | Shared ground |
SDA | A4 | I2C data line |
SCL | A5 | I2C clock line |
V+ (Power) | Battery Positive | Servo power |
V- (GND) | Battery Negative | Ground reference |
These must match your software configuration (e.g., pwm.setPWM(4, 0, value)
)
-
Use a 6Vβ7.4V battery pack for V+ to supply sufficient power to all servos.
-
DO NOT connect PCA9685 V+ directly to Arduino 5V pin β it cannot supply enough current.
-
The GND of Arduino, PCA9685, and battery must be connected to complete the circuit.
-
pwm.begin()
is called insetup()
. -
Servos jitter or not moving β check battery.
-
No servo response β check I2C wires (SDA/SCL).
-
Use a multimeter to check V+ and signal lines.
Add this line to platformio.ini
:
library = adafruit/Adafruit PWM Servo Driver Library@^2.4.1
πFor actual Arduino code, refer to the arduino/Arm/src/main.cpp
in this repo.
Author: Syahiid Rasidi
Project: Lipan 2.0 Robot Platform
Last updated: 2025-05-29
This wiki page documents the hardware wiring for connecting an Arduino Uno to a PCA9685 16-channel PWM servo driver. This setup is used for controlling multiple servo motors in the Lipan 2.0 robot platform.
- Board: Arduino Uno R3 (clone)
- Power Source: USB (for uploading code and logic power)
- Servo Power Source: External battery pack (connected to PCA9685 V+ and GND)
PCA9685 Pin | Arduino Connection | Function |
---|---|---|
VCC | 5V | Logic power |
GND | GND | Shared ground |
SDA | A4 | I2C data line |
SCL | A5 | I2C clock line |
V+ (Power) | Battery Positive | Servo power |
V- (GND) | Battery Negative | Ground reference |
β When wired correctly, the red "POWER" LED on the PCA9685 should light up.
PCA9685 Channel | Servo Function |
---|---|
PWM0 | Base Rotation |
PWM4 | Right Arm |
PWM11 | Left Arm |
PWM15 | Arm Extension / Gripper |
These must match your software configuration (e.g., pwm.setPWM(4, 0, value)
)
- Use a 6Vβ7.4V battery pack for V+ to supply sufficient power to all servos.
- DO NOT connect PCA9685 V+ directly to Arduino 5V pin β it cannot supply enough current.
- The GND of Arduino, PCA9685, and battery must be connected to complete the circuit.
-
pwm.begin()
is called insetup()
. - Servos jitter or not moving β check battery.
- No servo response β check I2C wires (SDA/SCL).
- Use a multimeter to check V+ and signal lines.
Add this line to platformio.ini
:
library = adafruit/Adafruit PWM Servo Driver Library@^2.4.1
πFor actual Arduino code, refer to the arduino/Arm/src/main.cpp
in this repo.
Author: Syahiid Rasidi Project: Lipan 2.0 Robot Platform Last updated: 2025-05-29