For a long time I had an idea to make a beautiful box with complex LED illumination, but after a long search I failed to find such projects, even the code was not there. Because of those reasons I decided to make an instructable for everyone who wants to make their own boxes with custom illuminated images.
In this instructable I will explain step by step on how I made my own box and also I will try to give advices and ideas on how you can customise everything. As it is my first instructable, expect errors, but in time and I hope with your help I will try to improve and correct any flaws.
Use this instructable content at your own risk.
Step 1: Project Customisation Options
This project took me 3 weeks to complete including designing, coding, trail and error. I have paid 15 euros for plywood and laser cutting. But this project is more time consuming than money. If you don't have laser cutter you can always find a local company or order online. In a relatively small city I found at least couple places where you can laser cut anything at very reasonable price, so that should not be a problem.
My project consist of few layers of SMD LED's (for leafs, heart and birds), inside a middle layer there are a lot of SMD's, but that is quite complex (see pictures through instructable). My advice is to find less complex images you want to laser cut and illuminate. As you can see from the pictures it was painful to glue and solder everything in place. Less complex means more space for LED's and wiring, you can post ideas in comments, I will try to help as best as I can.
I used 3 mm plywood for everything. It is perfect for SMD LED's, as those are around 1,5mm. If you want to use standard 5mm LED's you need an appropriate thickness plywood or glue several layers of plywood or use one layer of LED's, then it does not matter what thickness you use. See picture for easier understanding.
Also I have to mention, that you cannot connect standart RGB's in series. That is another reason why I used SMD's. 3 SMD's in series uses 20mA for one color, just like in LED strips and I used like 40 of SMD's, so power consumption would be 3 times as high with standart RGB's (~800mA x 3 = 2,4A + arduino). Also additional wiring problems.
For this project I used Arduino MEGA clone for 6 euros. With MEGA you can control up to 4 RGB LED's. It can be done with arduino uno, but u have to use non-RGB LED diodes or combination of one RGB LED and two LEDS as there are only 6 PWM pins. It is possible to control multiple RGBs with arduino uno, but you have use something like TLC5940 or 74HC595 which is quite advanced, perhaps some day I'll add instructions on how to use them.
Applications for drawing
There are many free applications you can use for creating pictures you want, just use google. I used AutoCAD because I have lot of experience with it, but it is not free and surely not the best suited for this work.
Additional ideas for customization
Few idea I thought about, but have not used in this project:
Sound reactive LED's using MSGEQ7;
Control your LED's with IR remote or using wifi with your smartphone;
It is possible to make such project to run on batteries, but less LED's should be used.
Step 2: List of Materials and Tools
For this project I used 9V power suppy. 9V is better for arduino than 12V (less heating, less power loss) and 9V is just enough. Also mine 9V power supply was actualy 9,6V. You should use atleast 1,5A power supply for this project. I tried it with 1A and it worked (and it should in theory), but these cheap power supply not always match their specs.
You should have a lot of spare SMD's, because I burned down at least third of them while soldering (more experience needed). Also check your SMD RGB datasheet for specs, because I've seen few different versions. Mine was BRG, not RGB. Choose resistors accordingly. Here is a great resistor calculator.
Do not forget to check power rating of every part used.
I found all the materials in local shops, also in aliexpress and I believe you can find those in adafruit, ebay or something.
At least 50 5050 SMD RGB LED's, as alternative you can salvage 5050 RGB LED strip. I used common anode, but I am not sure if there is common cathode SMD's, have not seen any.
1x Arduino MEGA 2560
1x 9V, 1,5-2A power supply
10x Any NPN power transistors (TO220 type). For e.g. TIP120.
10x >1k Ω resistors, I had 8,1k and those worked just fine.
24x 27 Ω resistors
12x 180 Ω resistors
3x 330 Ω resistors
1x 390 Ω resistor
1x male power jack
1x female power socket
1x On-Off button
Breakaway Male Header for connecting wires to arduino
15 meters of each color wire (RGB, black and white). Thinnest I found was 0.22mm² and those were good enough.
Screws for Arduino and perfboard.
2x 18x24 hole perfboard or any that you can fit everything on.
Hot glue gun
Super glue or any other glue you want to use for plywood (hot glue does not work well where precition is needed)
Helping hands for soldering
Solder and flux
Step 3: Laser Cutting
For this project 3mm plywood was used. For using different thickness read Customisation options.
Before laser cutting check dimensions of female power socket and On-Off button you got, change drawing accordingly.
If you are doing the same project as me, but you want larger box, you can change certain parts easily, I think it is easy to understand which parts to change and how, so I will not continue on this, but if you have questions do not hesitate to ask.
After laser cutting do not forget to sand everything and do not throw away some of the left overs as those will be used (PART 4).
Step 4: Circuit
Schematic is self-explanatory. All grounds connects to female power socket ground and + to +, that is only anodes of last RGB's of RGB sections and arduino power jack possitive, see assembly pictures. I used adafruit LED strip overview for designing this circuit.
Also check datasheet or test your SMD RGB LED's for color sequence and forward voltages, because there are different LED's. Mine was BRG.
Step 5: Code
It was hard to find code which could control multiple RGB LED's at the same time, so I wrote my own. Perhaps it is not the best approach, but I do not have much experience in programming, so if you any advice, please share. The code is also self-explanatory, but I will explain most important parts.
For arduino to execute different LED blinking patterns at the same time I thought about using millis, but logic errors occured because of arithmetic with small numbers as mentioned in Arduino reference. Then I wrote a code that executed every loop in small independent increments (i1/i2/i3) until cycle was completed, then it reseted. Now during every loop PWM values changed only a little and then next loop could be executed. For a fancy heart beat I used Sean Voisen idea from here. It is modifield e^sin(x) function.
The code can be easily modified for your needs. For now I will not explain here in detail on how to change everything as it is mostly high school level math, perhaps in time if there is a need. But if you have quiestions, please ask.
Step 6: Assembly
- Prepare wires for every individual LED section so section match spots on your picture.
- Then solder SMD LED sections. Test every one of them. I used Arduino 5V for this.
- Now it is time to solder circuit to the perfboard, but before soldering everything try circuit on a breadboard with arduino connected! Check if there is not excessive heating. Do not solder LED sections to the circuit, leave that to the very end.
- Screw Arduino to PART 6 and check possitioning for perfboard.
- Glue PART 2 onto the bad side of the PART 1. Use other glue than hot for this one.
- Hot glue prepared LED sections to their spots. After gluing test every led again.
- Pass All the Gnd, bird and heart wires through holes in PART 3 and then glue PART 3 onto the project.
- Hot glue remaining (tree) LED sections to the back of the PART 3, also glue PART(s) 4. Solder all grounds together and test everything again.
- Solder wires, jack, socket and button together as in pictures.
- Solder wires of sections to respective resistors on a perfboard. Solder grounds and possitives together.
- Test the circuit with arduino.
- Add PART 5 (inside of the box) on top of the PART 3.
- Put together rest of the box. Mine required very little glue as it was very stable.
- Done !
Step 7: Done
Please post your finished projects or ideas and if you have any questions do not hesitate to ask, I will do my best to answer them.