#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#define PCA9685_ADDRESS 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(PCA9685_ADDRESS, Wire);
void setup() {
pwm.begin();
pwm.setPWMFreq(1000);
}
void loop() {
for (uint8_t pin=0; pin<16; pin++) {
setLED(pin, 255);
delay(100);
setLED(pin, 0);
delay(100);
}
}
void setLED(uint8_t pin, uint8_t brightness) {
// Ensure brightness is in range 0-255
if (brightness > 255) brightness = 255;
// Map brightness (0-255) to PWM range (0-4095)
uint16_t pwmValue = map(brightness, 0, 255, 0, 4095);
pwm.setPWM(pin, 0, pwmValue);
}