4.0 Wiring Guide Arduino Uno and PCA9685 Servo Driver - SwollEngineAF/lipan GitHub Wiki

⚑ Wiring Guide: Arduino Uno + PCA9685 Servo Driver

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.


🧠 Microcontroller Setup

  • 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 to Arduino Connections

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


πŸ“¦ Power Notes

  • 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.


πŸ› οΈ Debug Checklist

  • pwm.begin() is called in setup().

  • Servos jitter or not moving β†’ check battery.

  • No servo response β†’ check I2C wires (SDA/SCL).

  • Use a multimeter to check V+ and signal lines.


🧰 Recommended Libraries

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

## ⚑ Wiring Guide: Arduino Uno + PCA9685 Servo Driver

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.


🧠 Microcontroller Setup

  • 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 to Arduino Connections

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.


βš™οΈ Servo Channel Mapping

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


πŸ“¦ Power Notes

  • 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.

πŸ› οΈ Debug Checklist

  • pwm.begin() is called in setup().
  • Servos jitter or not moving β†’ check battery.
  • No servo response β†’ check I2C wires (SDA/SCL).
  • Use a multimeter to check V+ and signal lines.

🧰 Recommended Libraries

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

⚠️ **GitHub.com Fallback** ⚠️