Objective
Create an artificial candle or lantern using a NeoPixel jewel or other programmable LED. Your candle should include a base and a shade or diffuser. Try to capture the colors and behavior of a real candle in programming your candle.
Materials
(2) Fluorescent green acrylic rods, 1’ L x1/4” D - Canal Plastics
(2) Clear acrylic rods, 1’ L x 1/4” D - Canal Plastics
1/4” white acrylic - Canal Plastics
Neopixel Jewel
Arduino NANO 33 IOT
Enclosure Fabrication
I started fabricating the enclosure for the Neopixel because I wanted to adjust the color of my LED candle to take the fluorescent green acrylic rods into account.
I lasercut out two circles that would hold the weaving acrylic rods in place to simulate the look of fluted glass.
I trimmed the acrylic rods into 16 pieces using the bandsaw, and used a rubber mallet to hammer them into the circle.
Code
I observed three sketches: NeoPixelSimple (red pixel one at a time) NeoPixelCandle0001.ino (red to orange) and WS281xCandle.ino (flicker) before attempting to make any changes.
I referenced the Neopixel color chart to determine the color range I wanted my candle to fall within.
At first, I thought that the green acrylic rods with very saturated yellow tones would benefit from LEDs that were less saturated and in a deeper red tone range. I changed the hue color range to 1000 to 2000, saturation 50-100, and intensity from 10-100. This resulted in an even more artificial pink orange that did not resemble the flame.
I then tested out more saturated yellows, which resulted in highlighting the green acrylic even more in an undesirable way.
Finally, I settled on a range where the candle initializes within the ranges H: 4000 - 5000, S: 230-255, I: 200-255. Looking at the enclosure straight on, there is still more artificial green that I am not sure can be avoided due to the materiality of the acrylic rod choice. However, looking at the ambient glow of the light on a white piece of paper resembled closer to the warmth of an actual flame. Here is a link to the code.