The code I used in the Arduino sketch demonstrates direct port manipulation, which is a fast and powerful alternative to digitalWrite().
Update 3/10/2011 : Finished adding the Music Synchronization section of this Instructable.
Update 3/20/2011: I decided to build Lampduino instead of the coffee table.
Note that the flickering in the video below was caused by my video camera. When viewed with the naked eye, no scanning is perceived, and the lights do not flicker.
Music Sync Mode:
Arvid "Try (fenomenon remix)"
Free-running mode (without music synchronization):
Remove these ads by
Signing UpStep 1: Acquire the Parts
25 LED's - I used warm white 5mm LED's purchased on eBay
5 resistors - I used 100 ohm, but the exact value will depend on what LED's you use. I will explain how to calculate in the Wiring step.
NOTE: You may need also need 10 diodes and different resistors, especially if you are using white LED's... please the Troubleshooting section in step 3 for details.
Arduino - I used a Duemilanove clone - in Step 7, I switch to a much cheaper alternative.
wire
white foam board
.005" thick matte drafting film - I bought a sheet from a local artist's supply store. The smallest sheet they had was way more than I needed - 24x36"
If you want to implement music synchronization capabilities, you will also need some more parts, as discussed in the Music Synchronization step.
Tools Needed
hot glue gun
mat knife
soldering iron
solder
pliers/wire cutters
The LED's I used were point source water clear. If you don't want to deal with hotspots in your display, diffused would be better. I had to put blobs of hot glue on mine to diffuse them. The photo below only shows bits of the foam board, because I forgot to photograph the parts before I started. The piece I used was about 16x20" to start with.











































Visit Our Store »
Go Pro Today »




http://en.wikipedia.org/wiki/Phone_connector_(audio)
if (bitMask == B00010000) {
bitMask = B00000011; // light the right 2 columns (pins 9,8)
// increment row and wrap if necessary
if (++row == DIM) {
row = 0;
}
}
else if (bitMask == B00000011) {
bitMask = B00001100; // light the middle 2 columns (pins 11,10)
}
else { // bitMaskIdx == B00001100
bitMask = B00010000; // light the leftmost column (pin 12)
}
what do i have to do to fade the leds instead blink them?
If you need to figure out what's going on w/ a column staying on all the time, try TESTMODE... it will light up the LED's in sequence. You might have a wiring error.
You have to use PWM to fade them. I don't have time to write the code for you
I'm working on a version that uses random numbers instead of pre-defined values in frames.h. However, I'm running into a snag and perhaps you can help me to figure out why.
Whenever I call random(), the display freaks out and flickers. Everything works find when that statement is REM'd. Is this a problem with the random number generator used in conjunction with the interrupt library?
Thanks!
i want to built the 5x5-matrix too, but first i wanted to try the animationbuilder, unfortunately the link doesn't work. can anyone tell me, if i can download it elsewehere. would be really nice to have it. thanks in advance!
and great tutorial!!! after this i'll maybe try the lampduino ;).
next step is to sand + paint the table and to find the right leds. the table already has a 5x5 grid built in, but the "pixels" are quite big. i'm going to buy a few leds and try, if i can find one, that has the right angle to light the hole pixel.
i'm going to post some pictures or maybe a video of the final result.
thanks again!!!
Your animation builder html leads to a 403 forbidden error, maybe a bug?
i built your table with some large blue leds but they did not make bright enough light so i went for straw hat leds which seemed to be fine. For testing purposes i put one of them on a cr2032 battery with 3 V and it worked fine. I replaced one of the leds in my arduino driven matrix with one of the new red leds and was disappointed: It seems that it does only glow with much less intensity than it did before on the battery. Did i do something wrong or does the matrix work this way and there is not enough power for the maximum brightness of the leds?
thank you so much,
tm
p.S: I currently use a 91 Ohm resistor which should be even lower than the one it would need for the red ones
thank you very much
tm
i built your table with some large blue leds but they did not make bright enough light so i went for straw hat leds which seemed to be fine. For testing purposes i put one of them on a cr2032 battery with 3 V and it worked fine. I replaced one of the leds in my arduino driven matrix with one of the new red leds and was disappointed: It seems that it does only glow with much less intensity than it did before on the battery. Did i do something wrong or does the matrix work this way and there is not enough power for the maximum brightness of the leds?
thank you so much,
tm
p.S: I currently use a 91 Ohm resistor which should be even lower than the one it would need for the red ones
ive added two buttons to the program which are ment to display two different patterns depending on which button is pushed. currently i have it so when a button is pushed it displays the first frame and when it is pushed again it shows next frame, though i want it to display the full sequence. Any help would be greatly appreciated!
Many Thanks,
holmez
p.s. great post!
Brilliant project!
tm
thanks again!
Cheers Kev
Cheers Kev