I found some waterproof LED light strips in RadioShack and this project immediately popped into my head. I wanted to create some programmable light displays for my kayak when I night paddle. This first project revolvs around the 4th of July fireworks show that Jessica and I paddle out to watch in Austin, TX.
First, I did some prototyping with an Arduino, the light strip, and my bench top power supply. All that is required is the fastled.h Arduino library, a single control wire to the LED strip, and 12 volts to power the lights. I measured the current draw of the LED strip at different brightness levels with my multimeter and found that at full brightness and white light (all LEDs on) it pulled ~500 milliamps. This is perfect because it is low enough to be powered by a single set of AA batteries for a few hours. I'll likely never power it at full brightness anyway. Also, by animating the lights so they are periodically off, I will use even less power.
AA batteries are 1.5volts each, so 8 of them in series gives me the desired 12volts. I used 2 AA battery holders that can each hold 4 AA batteries and I wired them in series.
I wrapped the soldered connection with Kapton tape and put a strip of tape down the side to shield the connectors. I only had to tape one side since the other was going up against the inside of the project box.
I decided to use a standard RadioShack project box. I found one big enough to hold the batteries and other components. The project boxes come with both plastic and aluminum lids. I like to use the aluminum lids because they are better for mounting switches and lights to and when installed the lid is recessed into the box a little. I knew that I would need an on off switch and one button from my prototyping stage so I went ahead and mounted those in the lid.
Here are the battery holders inside the project box. I used some hot glue to secure the holder to the bottom of the case. Hot glue is nice because it holds well enough and can be peeled off later if desired.
I still have some spare RBBB (Really Bare Bones Board) Arduinos using Atmel's Atmega 168 and they are perfect for projects like this. I used a piece of double sided sticky foam to mount and insulate the Arduino on the bottom of the case lid. I also used some hot glue later just to prevent it from falling off the lid and provide some more insulation on the pins. I am not too worried about it, which I might regret later since this will be used in a moving environment around water. The RBBB has its own voltage regulator so a direct 12v power source is fine. I also wired up the button to input pin 2 and the green wire is the LED strip output on pin 3. A simple pull-down resistor keeps the button presses honest.
Here is the enclosure when I started wiring. All of the major components installed. During the construction phase I would remove at least one of the batteries to prevent accidental discharge.
I decided to get a second LED strip so that I could have one on each side of the kayak. Together at full power they could pull ~1amp which my set of standard alkaline AA batteries can provide and a set of lithium AA batteries would have no trouble sourcing. I did decide to throw in a large capacitor just to help even out the current spikes when the alkaline AA's can't keep up. This worked great. I was also able to determine that I could control both LED strips with a single output from the Arduino which is really nice.
Here are the two LED strips running off of battery/capacitor power for the first time. I might be able to drive a third and fourth strip with lithium batteries.
Here is the final wiring with the capacitor added to the lid. I also added a green LED light on the lid just to let you know when the Arduino was running. The one thing I could never decide on was what connector or cable to power the light strips with. I decided on using an old PC fan cable because I had it, it works, and will suffice until I find something better.
And here it is with the lid in place. Like I said, the cable will work fine for now but I would like to find a more permanent solution.
I made a little T connector to split the power and signal coming from the controller to the two different LED strands.
It works great! I also put some Kapton tape here to keep the pins connected and water out. Plus I can just remove the tape and use a single strand with the controller if I want.
So far I have 9 light patterns programmed with a 10th that cycles between several of the other patterns periodically. You can press the button to rotate between the patterns or hold the button to change the brightness. I'm pretty proud of how well this single button interface works.
Here is a video of the first test on the kayak. There is a small gap in the front and back, but that is alright with me:
You are welcome to view my source code on github here. I really just pieced together a few example files and haven't taken time to clean up the functions as of yet. If I think of another project for these lights then I will likely put some more time into it, but for now it works.
It should be obvious, but I'll say it anyway. Please check your local laws before going out in a vehicle with red and blue flashing lights.
Here you can see a demo of the system. Pressing the button momentarily rotates between the different light shows. Holding down the button changes the lights to all red and the brightness starts off dim and gets brighter and you let go of the button at the desired brightness. The red lights transition to black when the maximum brightness is reached.
The lights are removable. I just use a piece of paracord to tie the front and back of the lights under the lip of my kayak. It is very sturdy and should work great for the first real test run. I'll be sure to include some more video and pictures after the celebration on the 4th.
The lights worked great! I am very glad that I added the ability to change the brightness because they were very bright even at low settings. As promised here is some video .
If you liked this, you might like my kayak platform as well.