Hey guys. I will be showing you how you can make your own Arduino based, infrared controlled, RGB LED strip
controller.
You can find the full video here: DIY Arduino RGB LED Strip IR Controller
Schematic
Gerber Files
EasyEDA Project files
Arduino Sketch
IRRemote Library
The principle of the controller is quite simple. The 12v positive is connected directly to the 12v rail of the strip and the VIN pin of the arduino supplying it with power. Each mosfet source is connected to the ground of the power supply. The drain pins connect to each negative rail of the strip, for the red green and blue colors and the gate is connected through a 220ohm resistor to a PWM output pin of the arduino. When a PWM signal is sent from an arduino pin, it opens the gate of the mosfet allowing current to flow to the negative pins of the strip.
The IR receiver is connected to the 5v, ground and digital input pin of the Arduino, decoding any IR signal sent in it’s direction.
Now let’s have a look at the arduino code.
First thing you have to do is download the latest IRRemote library from their github page. Extract the zip file and move it to your arduino libraries folder. Make sure you delete the existing RobotIRremote library from the root arduino libraries folder because it can interfere with the irremote library.
Next you can open the IRRecvDemo example sketch in your arduino IDE and change the receive pin on line 11 to 8 as that is what we are going to use on our arduino for receving the ir signal. Upload the sketch and open up the serial monitor. Now take a remote control you wish to use with your controller and press a button. If you have done everything correctly a code will show up on the serial monitor. Write down all the codes corresponding to the buttons on your remote, we are going to use them later on in our sketch.
Next, go to my github repository and download the sketch.ino file and open it up with your arduino IDE.
You can edit lines 16-39 where I defined the codes for each button on my remote, just change the HEX codes on the right side to the codes you wrote down earlier. I’m going to make a separate video and link it in the description explaining the code in detail.
A quick warning for anyone trying this project out, if you are using an arduino nano, please use exactly these pins that are setup in my sketch, some pins (5 and 11) freeze up the arduino if a pwm signal is being sent through them because the IRREMOTE library uses the built in timers of the arduino when interpreting the code and those pins need to be free. Also you can’t use the 13 pin for inputs, because it is connected to the built in LED indicator of the arduino. I have made the mistake of using those pins without properly testing first and had to order another board as a result, so please keep to these pins if you want to be safe. Upload the edited sketch to the arduino and test out all your buttons. If everything goes to plan, you should have all the buttons working correctly and displaying the colors you want. Intensity up and down buttons are used to dim the colors if you are in color mode, and speed up and slow down the animations if you are using one of the 4 animation I setup.
Hope you like the idea and the project!