Introduction: Small LED Strip Controller With LED Amp and Arduino Nano

A small LED strip controller made with a LED amplifier and an Arduino Nano. Perfect for making custom lighting patterns and/or control the led strip from your computer. It uses the Mosfet gates from the Amplifier to control the LED strip without putting a load on the Arduino. Because of the design of the amplifier some changes has to be done to its PCB so that it doesn’t fry the Arduino and this means that you have to have some skills in soldering before trying out this project.

This project is inspired by “LED Strip Controller w/ LED Amp + Arduino” made by: ehsmaes. It takes the idea of using a led strip amplifier and an Arduino to control the LED strip, but uses a PCB to make the circuit smaller, and fixes the problems with the amplifier frying the Arduino. Link to instructables:

https://www.instructables.com/id/LED-Strip-Controll...

Step 1: Things You Will Need

Things:

  • Prototyping PCB
  • Arduino Nano
  • LED strip amplifier
  • Some small wires. I use resistor legs
  • shrink tubing

Tools:

These where the tools i used to make this project.

  • Soldering iron
  • Solder
  • Exacto knife
  • Hobby knife
  • Heater of some sort (for the shrink tube)
  • Pliers
  • Tweezers
  • Wire cutter
  • Multimeter. Optional, but makes testing before powering on easy.

Step 2: Making the Circuit

The circuit was built in three steps, photo 1. Modifying the amplifier, Soldering the arduino on the PCB, and Soldering the amplifier on the PCB. In the photo above you can see how the amplifier should be connected when it has been modified, photo 2.

1. Modifying the amplifier

  • Cut the shrink tube of the amplifier, photo 3.
  • Mark where the red wire is connected and desolder both the red and black wire, photo 4.
  • Here comes the hard part. Desolder the IC on the middle of the PCB. A good way to do this is to wedge the exacto knife under the IC and the pressing it up while you heat up the legs of the IC. Be careful not to pull of the pads on the PCB. Sadly i forgot to take a photo of this part but the IC can be seen lying beside the PCB in photo 5.
  • Desolder the two resistors marked in photo 6.
  • Solder the pads marked in photo 7 together.
  • Cut the PCB track marked in photo 8 with the hobby knife like it is shown in photo 8.
  • Solder the power cables back on the board, but solder the black wire on so that it connects both to the original pad and the resistor, like it is shown in photo 9.
  • And the last one. Desolder the LED strip connector, photo 10.

Step 3: Soldering the Arduino and Amplifier on the PCB

2. Soldering the arduino on the PCB

  • The PCB should be cut so that it has one extra row of holes than what is needed for the arduino, photo 1.
  • Solder the arduino down on the board so that the USB is on the opposite side of that extra row, photo 2.

3. Soldering the amplifier on the PCB

  • Place the amplifier on the PCB so that the RGB pads lign up with digital pin 9 on the arduino and solder one wire from the closest pad to the pin. Then solder the other two pads to digital pin 10 and 11, photo 3.
  • The other hard part. Look at photo 4 or this wont make much sense. Solder the output pad to the left to the extra row, YELLOW box. Solder the left leg of the left mosfet to the ground pin of the arduino, RED box. And then solder the right output pad to the Vin pin on the arduino, GREEN box.

Next put the shrink tube on over the arduino, heat it and cut it to cise. remember to cut holes for the reset buttom and the LED's of the arduino, photo 5, 6, 7, 8, 9, 10.

Step 4: Code

The code for this is just the standard fade code for fading a diode but made so that it changes between red, green and blue.

int ledPinB = 10;

int ledPinR = 11;

int ledPinG = 9;

void setup() {

// nothing happens in setup

}

void loop() {

// fade in from min to max in increments of 10 points:

for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 10) {

// sets the value (range from 0 to 255):

analogWrite(ledPinR, fadeValue);

// wait for 30 milliseconds to see the dimming effect

delay(30);

}

// fade out from max to min in increments of 10 points:

for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 10) {

// sets the value (range from 0 to 255):

analogWrite(ledPinR, fadeValue);

// wait for 30 milliseconds to see the dimming effect

delay(30);

}

// fade in from min to max in increments of 10 points:

for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 10) {

// sets the value (range from 0 to 255):

analogWrite(ledPinG, fadeValue);

// wait for 30 milliseconds to see the dimming effect

delay(30);

}

// fade out from max to min in increments of 10 points:

for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 10) {

// sets the value (range from 0 to 255):

analogWrite(ledPinG, fadeValue);

// wait for 30 milliseconds to see the dimming effect

delay(30);

}


// fade in from min to max in increments of 10 points:

for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 10) {

// sets the value (range from 0 to 255):

analogWrite(ledPinB, fadeValue);

// wait for 30 milliseconds to see the dimming effect

delay(30);

}


// fade out from max to min in increments of 10 points:

for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 10) {

// sets the value (range from 0 to 255):

analogWrite(ledPinB, fadeValue);

// wait for 30 milliseconds to see the dimming effect

delay(30);

}

}