The Adafruit CharliePlex Driver IS31FL3731 is a versatile LED driver chip that utilizes the Charlieplexing technique to control a multitude of LEDs with a limited number of I/O pins. This component is ideal for creating eye-catching LED displays and matrices without the complexity of using numerous pins or external components. Common applications include wearable electronics, custom lighting effects, and dynamic signage.
Pin Number | Name | Description |
---|---|---|
1 | GND | Ground connection |
2 | SDA | I2C Data Line |
3 | SCL | I2C Clock Line |
4 | VCC | Power supply (3.3V - 5V) |
5 | INT | Interrupt output (active low) |
6 | ADDR | I2C Address selection pin |
#include <Wire.h>
#include "Adafruit_IS31FL3731.h"
// Create an instance of the driver
Adafruit_IS31FL3731 ledDriver;
void setup() {
Wire.begin(); // Initialize I2C
if (!ledDriver.begin()) {
Serial.println("IS31FL3731 not found");
while (1);
}
Serial.println("IS31FL3731 found!");
}
void loop() {
// Light up all the LEDs in a loop
for (uint8_t i = 0; i < 144; i++) {
ledDriver.drawPixel(i, 127); // Set brightness to half (0-255)
delay(50);
ledDriver.drawPixel(i, 0); // Turn off LED
}
}
Ensure that the Adafruit_IS31FL3731 library is installed in your Arduino IDE before uploading this code to an Arduino UNO.
Q: Can I control individual LED brightness? A: Yes, the IS31FL3731 allows for individual PWM control over each LED's brightness.
Q: How many of these chips can I chain together? A: You can chain multiple IS31FL3731 chips by setting unique I2C addresses using the ADDR pin.
Q: What is the maximum current the chip can handle? A: The maximum current per LED is 40mA, and the total current for the chip should not exceed the power dissipation limits.
For further assistance, consult the Adafruit IS31FL3731 datasheet and the Adafruit support forums.