LED Charlieplexing Question - Page 1
Forum section: electronics / projects

author: 8086
author_rank: Super Contributor
timestamp: March 05, 2011, 05:59:43 pm
content: Hi all,So I am using charlieplexing in a project because I have limited I/O, but I have a pretty basic issue that I can't get my head around.Say I connect up some LEDs like this:If I set Pin1 high, Pin2 as input, and Pin3 low, LED6 will light, but why won't LED1 and LED3 also light? They are in parallel with LED6.I haven't actually tried this for myself yet as I am waiting for parts to arrive but this seems like quite a basic thing to not be understanding so I am quite concerned.Any help appreciated

author: dimlow
author_rank: Frequent Contributor
timestamp: March 05, 2011, 06:50:42 pm
content: Think about the current path and what resistances it encounters. Now if each LED was a pool of sticky stuff and you were the current swimming through it what way would you go ?

author: 8086
author_rank: Super Contributor
timestamp: March 05, 2011, 07:33:05 pm
content: I see what you mean, that was my first thought, but why wouldn't the two LEDs just light with half the current of the single LED? I'm seeing a current divider here...

author: ziq8tsi
author_rank: Regular Contributor
timestamp: March 05, 2011, 08:50:08 pm
content: Quote from: 8086 on March 05, 2011, 07:33:05 pmThe current would be divided if the LEDs obeyed Ohm's Law, like resistors do. But they are semiconductors.An LED has a minimum forward voltage, say 2V, below which there is negligible conduction. The forward voltage increases only modestly with current.For LED1 and LED3 to conduct in series, the voltage across them would have to be 4V. But by that voltage, LED6 would be conducting a huge current. So the current in LED6, and resulting voltage drop in the pin resistors, will ensure that the voltage across the series LEDs is nearer to 2V than 4V, and neither of them will conduct at all.

author: Jon Chandler
author_rank: Frequent Contributor
timestamp: March 05, 2011, 11:13:15 pm
content: Adding a bit to ziq8tsi's explanation:The voltage across LED6 will be its forward voltage, say 2 volts. The current through the resistors will be whatever it takes to drop the remaining 3 volts.LED1 and LED3 are in series and will have the same voltage across them as LED6 which is 2 volts. In order to turn on LED1 and LED3, the voltage across them would have to equal 2 x their Vf(4 volts) so they won't turn on.If the LEDs aren't fairly close in Vfthere may be some interesting results, where "interesting" isn't what you expect or want. If LED6 is a white or blue LED and LED1 and LED3 are red LEDs, the Vfof LED6 may be enough to turn on LED1 and LED3.

author: jtv4k
author_rank: Newbie
timestamp: March 05, 2011, 11:25:47 pm
content: Is your project limited to 6 LEDs? I've always found charlieplexing amazingly complicated (especially at higher LED counts). If all you're trying to do is individually address 6 LEDs with 3 ports, try something simple like a demultiplier.It may seem simple (and possibly a bit nostalgic), but check out something like a 74138 chip. You'll have to find one that can sync the current you're trying to use (depending on LED color), but it only uses three ports and can drive up to 8 LEDs! Neat

author: 8086
author_rank: Super Contributor
timestamp: March 06, 2011, 01:01:59 am
content: Ah that makes senseI am actually using 12 LEDs with 4 pins in my project.Thanks