LED candles can provide a nice sense of ambiance, without the inherent associated risk of fire. For better or worse, however, they don’t normally respond to air currents.
Paul Dietz, however, shows that this kind of response is actually possible, as an LED’s forward voltage drop is affected by how well it dissipates heat due to ambient air conditions.
This means that when you puff on an LED, the resulting voltage changes can be picked up by an Arduino Uno.
LEDs are designed to emit light, but they also make surprisingly capable sensors. Using only an Arduino UNO, an LED and a resistor, we will build a hot LED anemometer that measures wind speed, and turns off the LED for two seconds when it detects you are blowing on it. You can use this to make breath controlled interfaces, or even an electronic candle that you can blow out!
How Does This Work?
When you run current through an LED, its temperature rises. The amount of rise depends on how effectively you are cooling it. When you blow on a hot LED, the extra cooling lowers the running temperature. We can detect this because the forward voltage drop of an LED increases as it gets cooler.
The circuit is very simple and looks much like driving an LED. The only difference is that we will add an extra wire to measure the voltage drop of the LED while it is on. To work well, you want to use a very small LED (I suggest using an 0402 surface mount LED) connected by the thinnest possible wires. This will allow the LED to heat and cool very quickly, and minimize the heat lost through the wires. The voltage changes we are looking for are just millivolts – at the very edge of what can be reliably detected via the UNOs analog pins. If the LED is resting on something that conducts heat away, it may not be able to get hot enough, so it works best if it is up in the air.
As shown in the video below, he turned this concept into a novel “candle” setup, blowing his tiny 0402 SMD-format LED out over and over—like a trick birthday candle!