Analog Circuitry Lets You Blow This LED Out

LED candles are neat, but they’re very suboptimal for wish-making: you can’t blow them out. Unless you take the circuit from [Andrea Console]’s latest project that lets you do just that, using only analog electronics— no microcontroller in sight.

He’s using the known temperature-voltage behaviour of the LED for control here– sort of like the project we saw in last year’s Component Abuse Challenge that let you illuminate the LED with a butane lighter. Here it’s a bit less dramatic, relying only on the small cooling effect your breath has on the LED.

There are two parts to the circuit, really– a latching section to turn the thing on from a single button press, and breath-detecting section. The breath-detecting section relies on an op-amp acting as a comparator, comparing the voltage across the LED’s current-limiting resistor, and a reference stored in a 100 µF capacitor. Blowing on the candle spikes the voltage on the LED, and thus the current-limiting resistor too fast for the capacitor’s voltage to change, so the comparator flips, triggering a reset of the latching circuit. Could you do it with an Arduino? No doubt, but the fact is you don’t have to and this is a more elegant solution than just another microcontroller.Check it out in action with the video embedded below.

It reminds us of the sort of circuit we’d have found in a project book, back in the day. [Andrea] seems to have a knack for that sort of thing, as seen with the half crystal/half regenerative radio we saw previously.

3 thoughts on “Analog Circuitry Lets You Blow This LED Out

  1. Could you do it with an Arduino? No doubt

    The question is, is the ADC in the Arduino sensitive enough to detect the small difference?

    The circuit at TP is estimated to be at 3.074 Volts, so the ADC reference needs to be greater than that. Let’s assume AREF is set at 3.3 Volts, so we can actually measure the voltage. The let’s suppose this is an Arduino Uno measuring at 10 bits, that means 3.3 Volts / 1024 = 3.22 mV smallest measurable difference.

    If we assume some typical PN junction temperature dependence of -1.8 mV/°C the Arduino needs a swing of 1.8 degrees to see a single bit flip in the ADC. Now the question becomes, what’s the real ENOB of the ADC? Is the last bit going to be just random noise? How much do we need to average to actually measure the temperature change, and is it enough to reliably detect you blowing on the diode?

    Turns out it’s not actually trivial to get it working. Maybe on a better Arduino?

    Bonus points: there is a programmable comparator in the ATMEGA328p between AIN0 and AIN1, which in theory could let you do the exact same trick.

    1. Some arduinos have 14bit adc’s. Like you said though the ENOB isn’t that. You would probably want to run the thing on batteries but even then I wouldn’t be surprised if supply noise was a real problem at anything over 12 bits.

      It’s what though 16 samples to get 2 more bits at something like 400Hz? So even if a 10 bit Arduino had an 9bit ENOB you could probably pull it off with 11bits.

      I think at this point though I would resort to an amplifier stage after trimming a DC offset. That’s probably because I lack actual skills in electronics.

      Comparator is a good idea.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.