LEDs are diodes (that’s what the D stands for) and diodes are sensitive to voltage drops: when you blow on an LED, you make it ever so slightly cooler, and that causes an infinitesimal, but detectable voltage drop.
The very clever Electron Plumber figured all this out and built an LED “candle” that goes out when you blow on it, using the LED itself as a sensor that detects voltage drops (caused by cool air, caused by blowing) and winks out when you blow on it.
It’s a clever demo with a two important details to make it work. The first is the LED itself; [electron_plumber] uses a tiny 0402 LED that is mounted on two wires in order to maximize the temperature change caused by blowing on it. The second is the method for detecting changes of only a few millivolts more reliably. By oversampling the Arduino’s ADC, an effectively higher resolution is obtained without adding any hardware or altering the voltage reference. Instead of reading the ADC once, the code reads the ADC 256 times and sums the readings. By working with the larger number, cumulative changes that would not register reliably on a single read can be captured and acted upon. More details are available from [electron_plumber]’s GitHub repository for LEDs as Sensors.
An LED You Can Blow Out Like a Candle! [Electron Plumber/Instructables]
An LED You Can Blow Out, With No Added Sensor [An LED You Can Blow Out, With No Added Sensor [Donald Papp/Hackaday]