Arduino-Controlled Bluetooth Servo System with Adafruit PWM Driver
View and Edit Project In Cirkit Designer
Circuit Documentation
Summary
This circuit is designed to control multiple MG996R servo motors using an Adafruit 16-Channel 12-bit PWM Servo Driver, which is interfaced with an Arduino UNO microcontroller. The Arduino UNO also connects to an HC-05 Bluetooth Module for wireless communication capabilities. The entire system is powered by a 3.7V battery, which directly supplies power to the PWM Servo Driver and indirectly to other components through voltage regulation on the Servo Driver and Arduino UNO.
Component List
MG996R Servo Motor
- Description: A high-torque digital servo motor.
- Pins: GND, VCC, SIG
Arduino UNO
- Description: A microcontroller board based on the ATmega328P.
- Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0-A5, SCL, SDA, AREF, D0-D13
Adafruit 16-Channel 12-bit PWM Servo Driver - I2C
- Description: An I2C PWM driver capable of controlling 16 servo motors.
- Pins: 5.0V, VCC, SDA, SCL, OE, GND, PWM0-PWM15, PWRIN
HC-05 Bluetooth Module
- Description: A Bluetooth module for wireless communication.
- Pins: Key, VCC, TXD, RXD, State, GND
3.7v Battery
- Description: A power source for the circuit.
- Pins: +, -
Wiring Details
MG996R Servo Motor
- GND: Connected to GND on the PWM Servo Driver.
- VCC: Connected to 5.0V on the PWM Servo Driver.
- SIG: Connected to one of the PWM outputs on the PWM Servo Driver (PWM0, PWM1, PWM2, PWM3, or PWM4).
Arduino UNO
- 5V: Supplies power to the VCC of the HC-05 Bluetooth Module and the VCC of the PWM Servo Driver.
- GND: Common ground for the HC-05 Bluetooth Module and the PWM Servo Driver.
- A4 (SDA): Connected to the SDA pin of the PWM Servo Driver for I2C communication.
- A5 (SCL): Connected to the SCL pin of the PWM Servo Driver for I2C communication.
- D0 (RX): Connected to the TXD pin of the HC-05 Bluetooth Module.
- D1 (TX): Connected to the RXD pin of the HC-05 Bluetooth Module.
Adafruit 16-Channel 12-bit PWM Servo Driver - I2C
- 5.0V: Provides power to the VCC pins of the MG996R servo motors.
- GND: Common ground for all MG996R servo motors and the 3.7V battery.
- SDA: Connected to A4 (SDA) on the Arduino UNO for I2C communication.
- SCL: Connected to A5 (SCL) on the Arduino UNO for I2C communication.
- PWRIN: Connected to the + pin of the 3.7V battery.
- PWM0-PWM4: Each connected to the SIG pin of a respective MG996R servo motor.
HC-05 Bluetooth Module
- VCC: Powered by the 5V pin of the Arduino UNO.
- GND: Connected to the common ground on the Arduino UNO.
- TXD: Connected to the D0 (RX) pin of the Arduino UNO.
- RXD: Connected to the D1 (TX) pin of the Arduino UNO.
3.7v Battery
- + (Positive): Connected to the PWRIN pin of the PWM Servo Driver.
- - (Negative): Connected to the GND pin of the PWM Servo Driver.
Documented Code
Arduino UNO Code (sketch.ino)
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Note: The provided code is a template and does not contain any functional code. It needs to be populated with the initialization and control logic for the PWM Servo Driver and the HC-05 Bluetooth Module.