Controlling an LED array

I recently became interested in building an LED lamp as a gift for a friend. I have a good understanding of technology, but I have only a small understanding of electrical engineering. I have researched and understand how to build an actual LED lamp where I would have all the LEDs wired into a single series, or maybe two sets of series.

But I want to create patterns and designs with the LED array, which means being able to control each LED individually, and so far I'm not having a lot of luck researching how this works. I think it will involve the use of EPROMs, but if anyone could shed more light on what topics I need to read about I'd be grateful.

There exist a number of devices that control individual LEDs. Typically they offer on the order of 8-12 LED outputs per device, and oftentimes can control the brightness of each LED individually.

The devices are typically called "LED Drivers," and a quick Digikey search (www.digikey.com) will give you a bunch of options. LED Drivers can be controlled over a serial interface like SPI or I2C, so a easy way to do a first pass would be to use some microcontroller like a Microchip PIC that has a serial interface to talk to multiple LED drivers to create the patterns you want.

If you want to be more adventurous, you can try doing it with shift registers as in MAKEzine's first volume: http://makezine.com/01/bunnie/ [Broken] You'll have to buy the actual magazine to get the article. As I recall, it was a decently written article that was fairly accessible.

I don't know what your background is with microcontrollers and that sort of thing, but if you want to pursue the LED driver tack, you should check out PICs at www.microchip.com and Wikipedia for articles on I2C and SPI. (Feel free to substitute your favorite microchip manufacturer, it just so happens that Microchip PICs are pretty common in the DIY/hobbyist market, so there are a lot of resources available).