Charlie-plexing
Posted: 30 October 2011, 14:36 PM
Many of my projects involve some sort of LED display; RBG, bi-color, numeric, etc... The current project needed several go/no-go indicators, and bi-color LEDs seemed the most appropriate. As I was running short on I/O pins, I began looking for another solution that didn't require additional hardware. What I found was the Charlieplex method, which I had never heard of before. n I/O pins can control n(n-1) LEDs, so for my 8 LED array, the pin count is 4, but I could control 12 LEDs with those same for pins if needed.
Now, to be fair, there are some serious drawbacks to the method. First, you can't light more than 1 LED at a time, although cycling through them quickly can overcome that limitation fairly easily. The second (and perhaps more serious) limitation pertains to the failure mode of the array. The failure of a single LED (open or short) can result in the unintended lighting of other LEDs in the array, making diagnosing the failed component difficult at best.
I probably wouldn't use it on a commercial device, but for homebrewing, Charlieplexing might do the trick when you're running out of I/O pins to drive LEDs.
-DK
Now, to be fair, there are some serious drawbacks to the method. First, you can't light more than 1 LED at a time, although cycling through them quickly can overcome that limitation fairly easily. The second (and perhaps more serious) limitation pertains to the failure mode of the array. The failure of a single LED (open or short) can result in the unintended lighting of other LEDs in the array, making diagnosing the failed component difficult at best.
I probably wouldn't use it on a commercial device, but for homebrewing, Charlieplexing might do the trick when you're running out of I/O pins to drive LEDs.
-DK