Help a newb with a LED controller.

I have never really played with an arduino before and I am not even sure if it is the best solution that I have available. Basically my friends and I are toy collectors and we are trying to find a good alternative to lighting our display cases than buying those LED rope lights. I personally would like a little more control over the LEDs, such as using multicolor LEDs and being able to switch colors on a timed basis or just a button. I already have a 3-color string of 7 LEDs that I took from an old Saitek keyboard.

A friend managed to nip a really nice motion sensing controller and LED strings from a LEGO display he had at work. I would like to either reproduce that circuit or use an arduino to replace it. What I really need is someone to point me to an existing project another user has done or just a page for newbs to learn how to make one using an arduino. Here are the pics of the LEGO LED controller:

The cool thing with the Arduino is that you can program it to support all sorts of different display types and sequences.

From basic LED flashing to pulse width modulation to RGB LED strips, the opportunities are endless.

Do a search on Youtube for some 'Arduino LED' projects. Some of them provide code and schematics.

Have a look, there are 3 “Arduino + RGB led strip” projects with code and hardware description:

I searched around for some Arduino based LED projects and most of them were close to what I am interested in. I have been interested in getting one for a long time and just trying to rebuild some of the projects on the internet to learn about how to use it. I was just gonna start reading here because I don't really know anything about coding. I used to be into Basic and then Visual Basic but that was like 10 years ago. Which Arduino board do you think I should start with? I looked and there are a bunch with different price ranges. I would like to get a lesser expensive one, but also need to make sure that it's enough for what I need.

However for this project I am thinking that this would be a whole lot easier and faster. It has everything I was looking for. What do you think?

I'd just use the Arduino to start learning on and for other projects. Thanks for the help!

The kind of strips I use are:

  • WS2801 based
  • 1 chip per LED
  • 5V

The strip I ended up buying was (but they're cheaper from China):

My project is:

Okay I started reading the reviews on those LED lighting kits they sell and a LOT of people had problems with the strings being mis-wired. If I get the 5V strings you linked me to then what is the best way to drive them? One of those pre-build LED drivers or an Arduino setup? As I said before I am not proficient at all with coding so it's kinda making me wanna go the pre-fab route. Which Arduino should look at, I'd also like to do an RF or IR setup to switch presets, so I am assuming that I'd need to buy a shield to go with it? If someone could recommend an appropriate model I'd appreciate it.

I decided to start playing with an emulator to try and fumble my way around learning to use one. I'm assuming that an Uno is a good board to start with?

Yes, IMHO, UNO board is the best to start with, as it has a lot of libraries/ code samples / projects written and available on-line.

UNO is a good starting point. Depending on what you're trying to drive, just an Arduino without extra hardware will suffice.

I started out with the Sparkfun Inventor's kit and worked up from there.

Well I would like to drive those LED strings and just simple projects, I just went to Radioshack and bought an UNO ver3. Aside from the "learning" section of this site, are there any other good sites for novices?

Do you think I will run into any memory limitations with trying to use it as a LED driver with some simple effects and a timer. I would like it to turn on at like 13:00 and off at 23:00. I was thinking of getting the Ethernet shield that has an SD reader on it. Do you think it’s necessary? I started reading this article to understand timing functions TY for all the help and links!!

Timing doesn't consume much memory, only be aware of low accuracy arduino oscilator. To make switching time precise on long run, you 'd need RTC module. I don't understand your question about ethernet, if you need SD card shield there are a lot alternatives w/o i-net, but with MP3 etc.

I always think it's a good idea to start with the easy projects and work up from there.

I don't really need ethernet, I just mentioned it since the shields they sell around here locally that have SD also have RJ45. For accurate timing I was thinking of just getting a really cheap alarm clock and connecting the wires that go to the speaker to the Arduino instead and configuring it as an event, but your suggestion of an RTC module would be cleaner and easier. Thank you.

Okay so I have a Red, blue, purple LED string that I want to fade from red-purple-blue and I have the code almost working, EXCEPT for the fact the when the 1st LED hits brightness=0, LED2 stays @ 255. But when LED2 hits 0, LED1 momentarily shuts off or gets set back to 0 when I want it to be 255. Basically I want LED1 to go from 0 - 255 & stay there while LED2 goes from 0 - 255 & stays there as well before it all reverses and goes dark.

Here is what I have started with


 This example shows how to fade an LED on pin 9
 using the analogWrite() function.

 This example code is in the public domain.

int led1 = 9;           // the pin that the LED is attached to
int brightness1 = 0;    // how bright the LED is
int fadeAmount1 = 5;    // how many points to fade the LED by
int led2 = 11;           // the pin that the LED is attached to
int brightness2 = 0;    // how bright the LED is
int fadeAmount2 = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup()  {
  // declare pin 9 to be an output:
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);

// the loop routine runs over and over again forever:
void loop()  {
  // set the brightness of pin 9:
  analogWrite(led1, brightness1);                             
  // change the brightness for next time through the loop:
  brightness1 = brightness1 - fadeAmount1;
  analogWrite(led2, brightness2);
  // change the brightness for next time through the loop:
  brightness2 = brightness2 + fadeAmount1;
  // reverse the direction of the fading at the ends of the fade:
  if (brightness1 == 0 || brightness2 == 255) {
     (brightness2 == 0 || brightness1 == 255) ;
     fadeAmount1 = -fadeAmount1; } 
  // wait for 30 milliseconds to see the dimming effect    

Look in the code in this link, at the end implemented "color-wheel".