Which board is suitable for my project?

Hello! I have a project idea that I need advice with.

The finished project is supposed to be a simplified version of a UBeat interface. (Jubeat - Wikipedia)

Which utilizes fading LED lights instead of the on-screen prompts.

In short, I need to be able to control a 4x4 matrix of buttons (all buttons should be detectable individually, or at least minimum 4 button presses at the same time) , each button needs to have an LED (I'll buy buttons with embedded LED's) and you need to be able to fade each LED individually. (Via a command sent from the computer.)

I understand that as a first project, this is quite a handful (read:impossible), but I plan on doing the beginner tutorials to get a grip of the Arduino (I have already looked at many of the examples.)

What I need is to know what board to buy, and any other parts/resources that might be useful in this particular build.

If this project is unsuitable for the Arduino, I'd love to hear some suggestions for alternative implementations.

Thank you for your time!

(I'll buy buttons with embedded LED's)

You got a link for these switches? Typically, lighted switches are lit when they are on, and unlit when they are off. The lights are typically not separately controllable/fade-able.

If you use a multiplexer, you can get by with fewer than 16 pins that would be needed to read the state of 16 switches. The Arduino Duemilanove provides 14 digital I/O pins (2 are used for serial communication) and 6 analog input pins (which can be used for digital I/O, too). Only 6 of the pins support PWM, which is needed to fade the LEDs.

The Mega has 54 digital I/O pins and 16 analog pins. 14 pins support PWM. Still not quite enough.

For ease of development, 16 pins for 16 switches and 16 pins for 16 LEDs, the Mega would be a good choice.

The input (switches) and output (LEDs) could both be multiplexed, which would allow you to use a Duemilanove, which is less expensive, but requires additional hardware (for multiplexing).

I understand that as a first project, this is quite a handful (read:impossible)

It really isn't that complicated. Develop it in stages.

Learn to read a switch. Expand that to 16 switches.

Learn to fade an LED. Expand that to fading 16 of them.

Learn to read serial data (from the computer). Learn to collect the data in an array. Learn to decipher the data.

Thank you for your response. I didn't quite understand at the end, will I be able to control and fade all LEDs individually if I use a multiplexer? Getting a Mega is no problem, but can I get around the PMW problem using a multiplexer if only 14 of the pins support it? Also, I assume that it'd be wise to buy a.. bred board? One of those you stick on top of the Arduino that I've seen in all those pictures. :slight_smile:

I also saw another thread about the maximum amount of LEDs that the Arduino boards can run (power-wise). If I buy a mega, will it be a problem to light/fade all 16 LED's at once?

I can't seem to find a link to the particular button I was looking at earlier, but I'll get back to you on that. I also saw that some buttons have special room in them to house one LED of your own choice, so I might go with that kind of construction.