Now that we have a design and all of the parts, it’s time to start building!
A little bit of easy through-hole soldering is required to get this up and working.
First solder on the potentiometer based on the schematic.
In the image below, I have a red wire going to +5v, a black wire going to ground, and an orange wire going to the analog input.
Next solder the wire to the LED ring and to the Adafruit Trinket. The length of this wire is up to you, but I used about 3 feet of wire.
In the image below, I have a blue wire going to +5v, a green wire going to ground, and the yellow wire is the signal.
Tip: Once soldering is done and the connections are confirmed to be working, add a drop of hot glue to the connection point to act as a form of stress relief. I used a zip tie to bundle the wires around the Trinket PCB.
In order to have a relatively nice looking completed project, I used a ShapeOko CNC router to machine an adapter ring. Once the adapter was routed out and deburred, I glued the LED ring and 52mm UV filter into place.
I know not everyone has access to a CNC router. If you don’t have access to one, the 52mm filter can be glued or epoxied directly to the LED ring. Care should be taken not to short out traces or pads on the LED ring against the metal 52mm filter.
With all of the hardware completed, it is now time to download the software!
The software for this project is relatively basic. The code is based heavily around Adafruit’s Neopixel library using functions such as “strip.begin()”, “strip.show()”, and “strip.Color()”. These functions make the timing required for the Neopixels an afterthought as the library takes care of it all.
These functions also make the code easy to use and update as needed to fit your application exactly. Additionally, the “colorWipe()” is from Adafruit’s “standtest.ino” example project.
The important line of code in this project is:
colorWipe(strip.Color(analogRead(A5)/4, analogRead(A5)/4, analogRead(A5)/4, analogRead(A5)/4));
This line of code reads the ADC value from pin 5 of the Trinket, creates an RGBW color code, and sends the data to the colorWipe() function.
Below are two download links: One contains software used for this project and the other is for the Carbide Create file for the adapter ring.
https://drive.google.com/file/d/0B9npcDtU-qDZRmFZNHByTWhLd1E/view?usp=sharing
https://drive.google.com/file/d/0B9npcDtU-qDZa1kzZHdmcEI1MHc/view?usp=sharing
In order for this to compile in the Arduino IDE, a newer version of Adafruit’s Neopixel library is required. I used version 1.0.5 without issue. Older versions of the library do not support the RGBW Neopixels.
Instructions on how to install this library can be found on Adafruit’s website.