Adafruit AW9523 GPIO Expander - Qwiic
Expand your project possibilities, with the Adafruit AW9523 GPIO Expander and LED Driver Breakout - a cute and powerful I2C expander with a lot of tricks up its sleeve.
GPIO expanders work like this: you have a board with some number of GPIO but not enough for your project - maybe you need more buttons or LEDs. You could upgrade to a board with massive number of GPIO like the Grand Central, or you could pop on one of these boards. Connect it over I2C and then you can send/receive I2C commands to control the GPIO pins to write and read them. It's going to be slower than direct GPIO access, but maybe that doesn't matter if it takes a millisecond instead of a microsecond. You only need the two I2C pins, and you can even share the I2C port with other sensors and devices.
The AW9523 is a twist on the common I2C expander:
- It has 16 I/O pins, that'll double most boards' pin count
- Four I2C address options, so you can connect 4 expanders to one bus
- Each pin can be an input or an output
- IRQ output can alert you when input pins change value
- This chip does not support internal pull-ups or pull-downs, you will need to add an external resistor if you need one
- However, it does have 8-bit linear constant-current LED dimming support so you can connect LEDs without resistors and have great looking dimming without PWM
- The first 8 pins can be configured as open drain (as a group)
If you're using an expander to add lots of controllable LEDs, this board will make it very easy. Since its constant-current, you don't need resistors in line with each LED): simply connect the LED anode to one of the many VIN pads, then connect the cathode to the GPIO pin.
Of course, you can control any buttons or other I/O with the pins - we just think this board is particularly suited to LED driving. There's also an interrupt output, you can enable the pin-change IRQ for any pins so you can be notified when its time to read the I/O states.
One oddity about this chip is the default I2C address determines the initial boot-state of the pins. Adafruits' libraries immediately soft-reset and configure all the pins to inputs and push-pull so you can expect the same behavior no matter what the I2C address is. However, we recommend you check the datasheet Table 1 to make sure this doesn't affect your hardware.
Quick Spec
- 16 multi-function I/O, each for LED drive (current-source dimming) or GPIO mode
- 256 steps linear dimming in LED drive mode
- Any GPIO can be configured as an input or an output independently
- Support interrupt, 8us deglitch, low-level active
- Standard I2C interface, AD1/AD0 select I2C device address
- SDA, SCL, SHDN, and all GPIO can accept in 1.8V logic input
- ESD protection: ±4000V HBM (MIL-STD-883H Method 3015.8 standard)
- Latch-up:±450mA (JEDEC STANDARD NO.78C SEPTEMBER 2010 standard)
- Supply shutdown function, low-level active
- 2.5 ~ 5.5V power supply
- I2C address default 0x58 (can be 0x59, 0x5A or 0x5B)
- Dimensions: 38 x 17.8 x 4.5mm
- Net Weight: 6g
Wiring Diagram
Sample Code
#include <Adafruit_AW9523.h>
Adafruit_AW9523 aw;
uint8_t LedPin = 0; // 0 thru 15
void setup() {
Serial.begin(115200);
while (!Serial) delay(1); // wait for serial port to open
Serial.println("Adafruit AW9523 GPIO Expander test!");
if (! aw.begin(0x58)) {
Serial.println("AW9523 not found? Check wiring!");
while (1) delay(10); // halt forever
}
Serial.println("AW9523 found!");
aw.pinMode(LedPin, OUTPUT);
}
void loop() {
aw.digitalWrite(LedPin, HIGH);
delay(100);
aw.digitalWrite(LedPin, LOW);
delay(100);
}
Resources
Shipping List
- 1 x Adafruit AW9523 GPIO Expander - Qwiic
- 1 x Header Set
Adafruit AW9523 GPIO Expander - Qwiic
- Brand: Adafruit
- Product Code: AF4886
- Weight: 0.006kg
- Product Status : Active
Stock
| Warehouse | Stock Status | Location |
|---|---|---|
| Centurion | No Stock | |
| Stellenbosch | No Stock |
We ship free of charge between branches to complete your order.
-
R101.00 (Inc Tax: R116.15)
Related Products
I2C 8-Bit I/O Expander
I2C 8-Bit I/O Expander Quick Spec Operating supply voltage 2.5 to 6 V Low standby current consumption of 10 µA maximum I2C-bus to parallel port expander Open-drain interrupt output 8-..
R16.00 (Inc Tax: R18.40)
16 Bit IO Expander I2C - Dip
16 Bit IO Expander I2C - Dip Quick Spec 16-bit remote bidirectional I/O port High-speed I2C™ interface (MCP23017) High-speed SPI interface (MCP23S17) Three hardware address ..
R40.00 (Inc Tax: R46.00)
IO Expander Breakout - 16 Output - I2C
IO Expander Breakout - 16 Output - I2C Are you low on I/O? No problem! The SX1509 Breakout is a 16-channel GPIO expander with an I2C interface – that means with just two wires, your microcontroller..
R209.00 (Inc Tax: R240.35)
SparkFun LED Driver Breakout
SparkFun LED Driver Breakout - LP55231 The SparkFun LP55231 LED Driver Breakout is a self-contained solution for developing and deploying the nine-channel I2C LED controller. Remarkably simple, the b..
R215.00 (Inc Tax: R247.25)
IO Expansion Board I2C
IO Expansion Board I2C The PCF8574 IO Expansion Board is used as remote 8-bit I/O expander for I2C-bus. Up to 8 PCF8574 IO Expansion Board can be connected to the I2C-bus, providing up to 64 I/O po..
R40.00 (Inc Tax: R46.00)
SparkFun LumiDrive LED Driver
SparkFun LumiDrive LED Driver The LumiDrive LED Driver is SparkFun’s foray into all things Python on micro-controllers. With the SparkFun LumiDrive you will be able to control and personalize a whole ..
R355.00 (Inc Tax: R408.25)
Wave AW9523B I2C to 16 IO Expansion Board
Wave AW9523B I2C to 16 IO Expansion Board The Wave AW9523B I2C to 16 IO Expansion Board is an expansion board that adds 16 I/O's to your controller. It's compatible with the raspberry pi, Arduino a..
R95.00 (Inc Tax: R109.25)
Adafruit Keypad to I2C Qwiic Encoder - TCA8418
Adafruit Keypad to I2C Qwiic Encoder - TCA8418 Introducing the Adafruit Keypad to I2C Qwiic Encoder - TCA8418, a versatile I2C GPIO expander and keypad matrix driver. With 18 I/O pins, 10 columns, ..
R128.00 (Inc Tax: R147.20)
Tags: adafruit, aw9523, gpio, expander, qwiic, i2c, led driver, 16 pins, 16 way











