{"id":701,"date":"2022-08-24T08:29:46","date_gmt":"2022-08-24T08:29:46","guid":{"rendered":"https:\/\/ledask.com\/?p=701"},"modified":"2022-09-04T14:33:36","modified_gmt":"2022-09-04T14:33:36","slug":"pca9685","status":"publish","type":"post","link":"https:\/\/ledask.com\/pca9685\/","title":{"rendered":"PCA9685: A 16-Channel, 12-Bit, I2C-Controlled LED Controller"},"content":{"rendered":"\n

One of the critical components for an automated-manufacturing system, robotics, or CNC machinery project is a servo motor due to its precise control. This device requires a sophisticated circuit board<\/a> controller to run the operations and give it its desirable high-precision property.<\/p>\n\n\n\n

The dedicated module for controlling the motors is usually the PCA9685 16-channel PWM driver module. We will look at the controller and how to program it using Arduino to control its outputs.  <\/p>\n\n\n

What is PCA9685?<\/h2>\n\n\n

The PCA9685 is a 12-bit, 16-channel, I2C bus controller that delivers its output independently at 4096 steps (12-bit resolution) but with the same frequency. This frequency is programmable from 24Hz to 1526Hz, and the duty cycle is adjustable from 0-100%.  <\/p>\n\n\n\n

Adafruit 16-Channel 12-bit PWM\/Servo Driver – I2C<\/em><\/p><\/p>\n\n\n\n

<\/p>\n\n\n\n

Each driver can control 16 servos using only two pins, minimizing the occupant I\/Os. Used as the master chip, the controller can connect to 61 driver boards max in a cascading design (62 total), allowing the control of 992 servos simultaneously.<\/p>\n\n\n\n

Most controller applications involve running servo motors<\/a>, but you can also use them to control RGB LEDs.  <\/p>\n\n\n\n

\n
\"A<\/div>\n<\/figure>\n\n\n\n

A servo motor<\/em><\/p><\/p>\n\n\n\n

Source: Wikimedia Commons<\/em>  <\/p>\n\n\n

PCA9685 Pinouts<\/h2>\n\n\n

The PCA9685 16-channel PWM driver module has two sets of identical control input pins on either side of the board, which form the power and control inputs.  <\/p>\n\n\n

Power Pins<\/h3>\n\n\n

There are three power pins:<\/p>\n\n\n\n