rgb led ceiling mood light with hacked ir remote control
After making a few smaller RGB lights, I decided to see how far I could go on this concept.
The control circuit is basically the same, just a problem with using a more powerful LED driver!
The size of my finished lamp is 30 \"x 30\" square, which is 3. 5\" tall. It hangs 5.
5 \"and use 9x3 w RGB led controlled by the PIC 16F1829 micro controller.
Initially, the lamp has an additional control panel for color and speed adjustment.
Then one day I found a perfect infrared remote with power, R/G/B and up and down buttons and even built in-
Switch the backlight!
I decided it would be an interesting and practical addition, so I didn\'t waste my time bugging the infrared output signal and connecting it to the controller.
The light is white-light mode (
Like a normal lantern).
When the button is pressed, it switches to RGB color fading.
From here you can adjust the speed using the up/down buttons and even pause the color at any point in the RGB fading cycle.
Hope this Instructure can provide some ideas or inspiration for your own large building
Scale rgb led project!
Lamp Material: Single
Wall Corrugated cardboard plastic board rock corner beads rivets and rivet tools white paint (optional)
Fabric hot glue control circuit: quantity 1-
16 MHz TTL oscillator quantity 1-
Number of Rm 8410 or GP3U10X IR decoders 1-
5 V linear voltage regulator (
Or equivalent 5 v power supply)Qty 1 -12.
1 V Zener diode> = 1 w rated power quantity 1-4.
7 k Ohm, 1/4 W, resistance quantity 3-
1 k Ohm, 1/4 W, number of resistors 3-
Darlington transistor number 9-3W RGB LEDs (1W per color)(
Buy them on Ebay and search for \"3 w rgb led\" for about $6/ea)Qty 1 -Power supply(s)(See Step 3)(I used part 418.
The price of CFM60S300 30 V 2A offered by Cesar is $34. 25)Qty 3 -
Current limiting resistance (See Step 3)
Others: GE AREM4000-
X administrative remote control (Ebay)
Tool: hot glue gun brush (Optional)
Storage Oscilloscope (
But very helpful! )
The light itself is by single-
Wall Corrugated Board reinforced with sheetrock corner beads, fixed together with rivets.
I found the plastic corner ball of lowes very convenient because the hole size on the beads is very good and can accept 1/8 rivets!
My lamp is 30 \"x 30\" square and is 3. 5\" tall.
This size is arbitrary and you can adjust it depending on the size of the room or the number of LEDs.
Assembly steps: 1)
First, cut 4 sheetrock beads into 30 \"long.
Using these components, form the box as shown in the figure and install the rivets in each corner.
I suggest using a square to make sure all corners are uniform. 2)
Next, cut 4 pieces 3.
The length of the vertical wall bracket is 5 \".
The height of the wall is also arbitrary. 3)Place one 3.
There are 5 pieces in each corner and the rivets are in place.
This increases the rigidity of the square and also increases the vertical support of the walls. 4)
Now, cut the cardboard at the bottom of the square and four walls.
The cardboard can also be nailed to the sheet rock beads.
Before inserting the rivet, just poke a small starting hole on the cardboard and make sure to use the gasket on the side of the rivet to press the cardboard (
Otherwise the rivets will be pulled). 5)(Optional step)
Paint the interior of the lamp in a bright color to help reflect the light.
I use a white half.
It\'s shiny because I put it on the shelf. 6)
Finally, I suggest wrapping the outside of the lamp with the fabric of your choice.
I chose a flat black fabric that matches the room decoration, but you can really choose any fabric.
Just tighten the fabric and stick it with hot glue!
Circuit details: the control circuit is very simple and (
See attached diagram).
The PIC 16F1829 micro-controller has three PWM outputs, each connected to the LED string using a bipolar transistor driver and a current limiting resistor.
If you want to improve electrical efficiency, you can try using a dedicated LED Control IC like zxld1350.
For ease of wiring, ease of control and efficiency, I chose to run each LED string in series (
There is only one current limiting resistor for 9 LEDs).
You did give up some freedom because now you can only control each color channel individually, not each LED.
I am using a crystal oscillator because the clock a of the MCU is provided)
There\'s one around me, B)
I want to make sure that the time the remote is decoded is accurate.
There is an internal oscillator in PIC 16F1829 that you can potentially use to reduce the number of parts.
The IR detector/decoder is one that I found in the zeros.
You can use any type of IR detector but I like the can type as they are already built in-
Filter and zoom in.
Power supply and current limiting resistor: you want to select the supply voltage as close to the total LED series voltage as possible for the series LED string to minimize the power consumed in the current limiting resistor.
After selecting the voltage, calculate the resistance required for each LED string using Ohm\'s law.
Each LED can handle 0 according to the LED data sheet.
Current brightness and TIP121 35A collector
The saturation voltage of the emitter is 0. 75V.
Keep in mind that the LED voltage drop will vary for each color.
Calculate resistance: R = (Power supply-voltage-(
9 * LED_Voltage_Drop)-0. 75V))/(0. 350)
Calculate power consumption: P = r2 * 0.
350 I use a 30 v power supply so it takes 29 Ohm 3.
6 w resistance of red string and 6. 3 Ohm, 0.
7 w resistor for green/blue string.
I dug around in the garbage box and ended up getting 30 ohm 10 w and 6.
8ohm 2 w respectively.
If you can find a power supply with an extra 5 v output, then you can eliminate the LM7805 linear regulator and power the digital circuit directly.
Assembly: I assembled the final circuit on the perfboard (
See the picture in step 6).
I bought an old GE component video monitor at an auction about 10 years ago.
I finally found the use of the Monitor earlier this year, but when I connected it, you see, this thing is dead.
The good news is that the display comes with this awesome remote!
Measure IR signal: to understand the remote control, I connect the IR detector to the storage oscilloscope and start pressing the button.
The benefit of the storage scope is that it saves the IR code on the screen for your analysis.
Further, I actually save the tracking for each button as.
Import CSV file for Excel or OpenOffice Calc spreadsheet.
For the power button, see the IR signal spreadsheet in the attachment.
Analysis of infrared signal: using the remote control, I am not necessarily interested in decoding the entire message structure.
Mainly, I want to find the difference in the letter number when each button is pressed.
Use spreadsheets and time-
I found three parts for each infrared signal.
Start pulse, 16-bit Remote ID (
All buttons are the same)And then a 16-
Unique bit button code for each button.
By looking at the last 16-
We can tell which button is pressed.
One tricky part of using remote code is that when you hold down any button, the remote issues the same \"duplicate code\" until the button is released.
This duplicate code is very similar to the start pulse, but the duration is different.
Using the infrared signal: I connect the infrared signal to the PIC interrupt-On-Change pin.
Using the internal timer 0 module, we can count the time period between the falling edges on this pin.
Every time there is a descent edge, the PIC holds the status of the TMR0 register (
Record the previous period)
Then restart TMR0 (
Record the next period of time).
With this information, we can determine if we receive 1, 0, start pulse or repeat pulse.
The code for this project is written in the assembly language of the microchip.
The source code of the comment and the compiled hexadecimal file are attached.
Rough flow chart of program flow (
Related to each button)
Attached to the picture below.
The program consists mainly of three parts: 1)
IR code buffer 2)
IR code explanation 3)PWM Control (
RGB fixed color, faded color and white-light mode).
IR code buffer: use the procedure described in step 4-
\"Remote hacker\" I learned that the length of 0, 1, start pulse and repeat pulse are unique and repeatable values.
Every time the PIC feels the falling edge on pin 17 (Interrupt-on-change)
It will record the time since the last edge of descent, and then compare the value to a series of time \"windows\" to determine the type of pulse just entered.
You can see the general flow chart of the process in the picture below.
The window comparison code is not original, I found it on the excellent PICLIST website (
I set an error code if the length does not belong to any window (BC)
Mark and ignore everything until the next start pulse.
IR code explanation: PIC pushes this value into 8-each time 1 or 0 is detected-
First out of the register.
Although the pulse sequence from the remote control is more than 8 bits, we always end with the last 8 bits in the register, which happens to contain the unique value of each key of interest.
I compare this code to a known numeric value for each key (
These are measured on the oscilloscope in step 4)
Find out which button is pressed and what action to take (
White light mode, RGB mode, increase the speed of the pusher, etc). This 8-
The bit value is saved to the second register so that we know which command to repeat if the repeat pulse appears.
PWM control: PIC 16F1829 has 4 10-
Bit Hardware PWM register is an ideal choice for RGB color control.
By using the hardware PWM module, PIC is free to do other things when PWM enters the background.
The strength of each color is from 10-bits.
Each value is at the maximum value when the light is on to give out white light.
When the \"CONV\" button is pressed, 3-
Start a partial loop in the software. Part 1)
Red decreasing, Green increasing, blue = 0 part 2)
Green decreasing, Blue increasing, red = 0 Part 3)
The blue decreases, the red increments, the green = 0 program continues to cycle these three parts until white light mode is selected, or the light is paused in the current color by pressing the \"static\" button.
Now that we have introduced the main part of this project, it is time to put everything together.
You\'ll want to attach LEDs to some sort of radiator because they get hot.
I installed them on a spare device.
Transistor radiator in 3 sizes and press-
Install the fins of the radiator on another dry wall corner bead
Stick to the bottom of the lamp.
This provides a good exit angle for the LED light to be removed from the lamp (
So the light spread around the room).
Hide the power in the corner or on the edge of the light, where you have the best frame strength.
The circuit card is very light and can be hot-glued anywhere.
I installed my infrared sensor in the middle of the lamp, cut a hole in the cardboard, and then hot-
Stick it in the right place
I don\'t have to cut a hole in the fabric outside because it\'s too thin and the infrared light just goes through it.
Attach a rope to each corner of your lamp and pass through several holes in your corner bead frame.
How you connect it to the ceiling is a matter of personal preference.
Make sure you install it on a solid ceiling pallet so it doesn\'t fall and fall!
Please see attached picture for my method-
I made four custom hangers and I nailed it to the ceiling and tied the rope to the washing machine hanging on the hanger.
You also need to power up your lights.
For a long time, I have been running independently on the wall with extension cords.
I installed one recently.
On the AC outlet above the lamp.
Put everything together, you can do it.
Huge ceilingmounted remote-
Control rgb led moodlight!