A while ago I found a bunch of HLCP-H100 (pdf) LED light bars on boards ending their lives in an electronics recycle bin. I finally decided that it was time to build something with them.
I choosed to build an unusual birthday card with the age (29) made from eleven of these light bars. In order to make the thing more fun, I wanted to be able to light each led individually and control them from a microcontroller. Here comes the interesting trick to light each of the 88 LEDs forming the age : Charliplexing. The leds are aranged in a matrix and the tri-state logic of the microcontroller pins allows to power only one LED at a time.
For example, the picture above is a part of the schematic of the birthday card. The LEDs are grouped eight by eight, each group is given a number : 1,2,..., 11. In order to power the leds of the first group, the line number 2 is tied to ground (logic low) and one of the other lines is set to high. All the other lines are high impedance. The second group is selected when the line number 3 is grounded, etc... With this method we can light up exactly one led at a time, and cycling rapidly through all the LEDs gives the sensation of continuous light.
The card is controlled by a msp430g2252 µC programmed with the msp430 launchpad (which I got when it was still $4.30 !), and powered by a CR2450 lithium cell (A standard CR2032 is hardly powerfull enough to power the system). I hardcoded a few modes through which the user can cycle by pressing a push button, see the video below.
I didn't want to build this card on a standard perfboard and wanted something a little more elegant. The circuit was built on a rectangular piece of acrylic. I used a perfboard overlaid on the acrylic to drill holes for the LED light bars and the microcontroller and then wired everything with magnet wire. When the wiring was done, I covered it with a transparent spray varnish in order to fasten the wires in place.
Finally I engraved a short birthday message on the acrylic (not shown on the pictures)