Ahh, the Lite Brite.
What could be more fun than pushing dozens of little plastic pegs through a piece of black paper in order to create a pixelated, though colorful image? Well, I can think of quite a few things more engaging than that, and luckily so can [Lonnie Honeycutt] over at MeanPC.
While contemplating what to build with a pile of LEDs, his daughter came into the room with her portable Lite Brite. He thought that the pegs she was using looked awfully similar to the LEDs on his desk, so he did some test fitting and was surprised to see that they fit almost perfectly.
[Lonnie] thought that the toy would make an excellent clock, and his daughter happily agreed to let Dad do some tinkering. A few hours, an Arduino, and some Charlieplexing later, he had a nice looking clock that his kids were sure to enjoy.
If you’re interested in seeing more about how constructed, be sure to check out his YouTube channel and Instructable, where he happily provides all of the build details.
[Mike Shegedin] makes full use of an 8-pin microcontroller with this ATtiny13-based dice project. With a maximum of six I/O pins (that includes using the reset pin as I/O) he needed a couple of tricks in order to drive 14 LEDs and use a momentary push button for user input. We’re certainly familiar with the concepts here, but it still took quite a while to figure out what is going on with the schematic that [Mike] posted.
You’ve probably already guessed that he’s using Charlieplexing to drive more LEDs than he has pins. But when we started looking at the layout we thought he had drawn the schematic wrong, because there are six pairs of LEDs where the two diodes in each pair a not reverse biased, but hooked up in parallel. That, plus the fact that his battery is hooked up backwards. After several minutes of study the light bulb finally clicked on. Dice add pips (the dots on each side of a die) in pairs with the exception of the center pip. That means that you only need to control four total lines for each die (three pairs plus the center pip). There’s two ways to handle this, you could use four rows and two columns with traditional multiplexing, or you can reverse bias the two sets of LEDs for each die and use Charlieplexing. The former is a bit easier to program, the latter saves you one I/O pin and meant that [Mike] didn’t need to use the reset pin as I/O.
This is a clever addition to the collection of dice projects we’ve seen like the battery-less die, and the ATtiny2313 powered dice.
[Tom] recently started experimenting with Charlieplexing, and wrote in to share the 4x4x4 cube he built with an ATtiny24. Similar to this minimalist 4x4x4 LED cube we featured the other day, [Tom’s] version attempts to use the least pins possible to drive the LEDs, but in a different manner.
[Tom] didn’t want to sacrifice brightness, so he decided that the LEDs would have a 1/8 duty cycle. The problem is that the ATtiny’s I/O ports can’t support that kind of current so he needed a different means of driving the LEDs. Rather than employ any sort of shift register to control the LEDs, he opted to exclusively use transistors as he had done in previous projects.
For his Charlieplexed cube to use a total of 9 I/O pins he had to get creative with his design. He broke each level of the structure into two non-connected groups of LEDs, utilizing diagonal interconnects to get everything wired up properly.
It seems to work quite nicely as you can see in the video below. While it uses two more I/O lines than the other ATtiny cube we featured recently, we love the simple, shift register-less design.
Continue reading “ATtiny Hacks: ATtiny-controlled 4x4x4 LED cube has a unique design”
[Dmitry] was shopping for LEDs and accidentally pulled the trigger on the wrong type. Since he didn’t want to be wasteful, he figured he should at least take the time to build something with them.
A LED matrix display was the obvious project choice, but he only had a PIC16F688 at his disposal. Since the micro controller only has 11 output pins, charlieplexing was the only way he would be able to light the entire matrix.
While testing his LED array, he found charlieplexing to be a bit disappointing. The fact that the LEDs can get relatively dim, depending on the number of units lit at any particular time struck him as annoying.
In order to improve the performance of his charlieplexed array, he first decided to scan through all of the LEDs rather than just those that needed to be lit. This ensured that all of his LEDs had the same 1/110 duty cycle and were always as bright as possible. He also chose to use interrupts when lighting the LEDs. This meant that his code does not need to take into consideration any specific timing requirements to maintain persistence of vision. He also double-buffers the display to help reduce flicker.
He says that he ran into certain constraints with the PIC chip he chose, so he used a handful of lookup tables to ensure smooth operation of his display. He was quite satisfied with the results, and we think that the interrupt-driven display looks like it works just fine from where we’re standing as well.
Be sure to stick around for a quick video explaining and demonstrating his single-chip LED matrix.
Continue reading “Improve charlieplexing performance with interrupts”
[FallDeaf] bought a Lol Shield, and after making all sorts of blinky displays, he thought to himself, “What in the world can I use this thing for?”
In a really slick fusion of hardware, software, and the power of the Internet, he has created what he calls, “Lol Shield Theatre”.
The idea goes something like this:
You visit his site, and create your own “movie” by drawing on his virtual Lol Shield. Add as many frames as you would like, set the frame rate, then submit your creation. From there, you can download an Arduino sketch that contains your entire animation so you can play it on your own Lol Shield. You can also visit his Lol Shield gallery, where you have the ability to watch, download, and vote on movie submissions from other visitors.
He has also provided the source code to drive your Lol Shield, as well as created an API through which you can stream the various animation feeds from his Lol Shield gallery directly to your Arduino via a USB cable.
Be sure to check out the video demo we have embedded below, and show off your pixel cinematography skills over in the theatre.
Continue reading “Lol Shield Theatre brings online video to the pixelated screen”
Yesterday, we featured [Andrew]’s orientation aware camera. We want to highlight another one of his projects: LED Life. It’s a 6×5 LED matrix playing Conway’s Game of Life. He used the low power MSP430 like our e-paper clock. The best part of the writeup is his explanation of how Charlieplexing works. Microcontroller GPIO pins generally have three possible states: output high, output low, and input. This combined with the directional nature LEDs and some creative wiring means you can run a large matrix of individually addressable LEDs with just a few IO pins. Instead of just flipping the IO pins on and off you change their assigned state. Have a look at [Andrew]’s site for some great illustrations of how the system works. A video of his LED Life board is embedded below. Continue reading “LED Life and Charlieplexing”
Instructables user [cedtlab] has posted an interesting LED project that simulates birthday candles. The circuit runs on an AVR ATTiny45, and is powered by 4 AA or AAA batteries. By using a Charliplexing technique, they are able to drive all 20 LEDs with only 5 pins of the ATTiny. A thermistor is used for detecting breath by measuring temperature changes, and then blocks of LEDs turn off depending on the change detected. They have provided schematics and source code for everything. Make sure to check out the video of the “ficticious birthday party” after the break.
Continue reading “Breath controlled LED candles”