- Arduino
- A led (clear orange or clear yellow)
- Resistor for the LED (LED Resistor Calculator)
- Hot glue stick
- Paper
Wire the led and the resistor up like in this schematic:
![]() |
| LED Flicker Setup |
Now upload the following code to the arduino:
#define FLICKER_LED_PIN 10
// the start of the flicker (low)
static int flicker_low_min = 200;
static int flicker_low_max = 240;
// the end value of the flicker (high)
static int flicker_high_min = 230;
static int flicker_high_max = 256;
// delay between each low-high-low cycle
// low->high |flicker_hold| high->low
static int flicker_hold_min = 40; // milliseconds
static int flicker_hold_max = 80; // milliseconds
// delay after each low-high-low cycle
// low->high->low |flicker_pause| low->high...
static int flicker_pause_min = 100; // milliseconds
static int flicker_pause_max = 200; // milliseconds
// delay low to high and high to low cycle
static int flicker_speed_min = 900; // microseconds
static int flicker_speed_max = 1000; // microseconds
void setup() {
pinMode(FLICKER_LED_PIN, OUTPUT);
}
int flicker_random_low_start = 0;
int flicker_random_low_end = 0;
int flicker_random_high = 0;
int flicker_random_speed_start = 0;
int flicker_random_speed_end = 0;
void loop() {
// random time for low
flicker_random_low_start = random(flicker_low_min, flicker_low_max);
flicker_random_low_end = random(flicker_low_min, flicker_low_max);
// random time for high
flicker_random_high = random(flicker_high_min, flicker_high_max);
// random time for speed
flicker_random_speed_start = random(flicker_speed_min, flicker_speed_max);
flicker_random_speed_end = random(flicker_speed_min, flicker_speed_max);
// low -> high
for (int i = flicker_random_low_start; i<flicker_random_high; i++) {
analogWrite(FLICKER_LED_PIN, i);
delayMicroseconds(flicker_random_speed_start);
}
// hold
delay(random(flicker_hold_min, flicker_hold_max));
// high -> low
for (int i = flicker_random_high; i>=flicker_random_low_end; i--) {
analogWrite(FLICKER_LED_PIN, i);
delayMicroseconds(flicker_random_speed_end);
}
// pause
delay(random(flicker_pause_min, flicker_pause_max));
}
Everything in the flicker is randomized. You can change each parameter, the get the flicker faster or much slower, glowing like.
The candle light is mostly done. Now cut a 2-3 cm piece of the hot glue stick and drill a 5mm hole in it (diameter of the led). Stick the led in it, and the light is nicely diffused. The get the best result, place a piece of paper around it like in the photo above.
Hope you like it!
