This is a simple, inexpensive, programmable tail light for your night-time bike rides. And it doubles as an Arduino you can carry around with you for impromptu programming sessions! Every time I go out riding with this I'm asked "Where did you get that? How do I make one?!?!" so this Instructable is for YOU!
It's not super picky as far as what you use, Arduinos and their cousins will work, even ATTiny boards (DigiSpark, Trinket, Gemma). I usually build these out of project 'scraps' I find around the house.
The main thing you have to watch out for with this project is current. Arduino UNO and Duemilanove on-board power pins can handle 200mA. Other variants may be able to handle more or less. Check your specs. Check your specs a second time. If your lights and light patterns draw more current than recommended, you should splice a USB cable and run a separate lines to your LEDs, or you risk damaging your controller and burning out pins!
If you need help figuring out how much current your lights draw, learn about using a multimeter to measure current.
Step 1: What You Need
- Arduino (or similar) board with USB
- Neopixels, I've found I can stay under 200mA with 10-15. 30 LED/meter spacing is perfect!
- Mint tin of your choice
- USB Power Pack (try eBay or Walgreens)
- Appropriate USB Cable
- Soldering supplies, hot glue, wires, basic hand tools
- 1 small value resistor (under 500Ohms)
- 1 100uF Capacitor
- Heat-shrink for weatherproofing
- Connector if you want to detach/reattach lights
Step 2: Prepare Your Tin
Step 1: Eat your delicious mints :)
Step 2: Use basic tools to prepare your mint tin: a hammer and nail, or a drill with appropriate bit to make a space for a USB output one one side, a hole for 3 wires to your LED strip on the other.
Step 3: Cut a piece of cardboard to separate the Arduino from the tin. Or try a sticker or nail polish.
Step 3: Solder and Protect Your Connections
Make connections between the LED strip to the Arduino as follows
- DIN -> Digital Pin 6
- 5V -> 5V
- GND -> GND
You can place your low value resistor on the data pin to help ensure signal integrity, prevent voltage spikes. You can run a capacitor across power and ground to help prevent a rush of current from damaging your strip.
Learn more about power and NeoPixels
Strain-relief and weather-proofing are an annoying but necessary part of this project. Add some hot glue for support to your wire connections. If you have heat-shrink tubing you can use that to help weatherproof your LED strip: slide a piece over each end of your strip and use a lighter or heat-source to contract.
Step 4: Program With Arduino IDE
Programming this LED strip is super simple. Grab the Arduino IDE and you can get started immediately with Adafruit's NeoPixel library.
- Download Adafruit NeoPixel library
- Unzip that and copy it to Arduino/Sketchbook/libraries
- Restart the Arduino IDE, open File -> Examples -> NeoPixel -> strandtest
- Modify the number of pixels to match the number in your strip
- Adjust existing patterns to your liking or create new ones!
Step 5: Enjoy .... and Bonus Points!
Plug everything in and enjoy your blinkenlights :)
Add a push button to switch between patterns. Or some sensors to make your lights more dynamic. Perhaps the red hue shifts with compass direction, or the pattern changes as you speed up or slow down, or you use a GPS to make it get more excited as you get closer to home. There are endless possibilities. Happy hacking.