We’ve seen before how an LED can be used as a light sensor that senses how much light on it and then it can respond to this light intensity as a sensor and then reading this response with an Arduino.
Today we are checking this cool project of using Arduino with an LED as a temperature sensor that senses when it has been blow at and turns on and off.
What you need:
LED
220 ohm resistor
Some small wires
Circuit connection
Software
// Blow Out LED Ave creates an LED that you can blow out. It automatically relights after 2 seconds
//
// Copyright 2018, Paul H. Dietz
// LED Connections
define PLUS A1 // High side of the resistor
define MEASURE A0 // Low side of resistor and anode of LED
// Cathode of LED goes to ground
define NUMSAMPLES 10 // Number of samples to keep
define MINJUMP 150 // Minimum jump for blow out
long int sensedata[NUMSAMPLES];
int dataptr = 0;
int buffull = 0;
void setup() {
Serial.begin(250000); // Initialize serial communication
pinMode(MEASURE, INPUT);
pinMode(PLUS, OUTPUT);
digitalWrite(PLUS, HIGH); // Turn on the LED
}
void loop() {
int cnt;
long int sum = 0;
// Sum 256 adc readings (to reduce adc noise)
for (cnt = 0; cnt < 256; cnt++) {
sum = sum + analogRead(MEASURE);
}
Serial.println(sum); // Output sum so we can watch with Serial Plotter
// Compare current measurement to oldest if buffer full
if (buffull && (sum > (sensedata[dataptr] + MINJUMP))) {
// Temperature drop exceeded minimum – turn off
digitalWrite(PLUS, LOW);
dataptr = 0; // Reinitialize the buffer
buffull = 0;
delay(2000); // off time for LED
digitalWrite(PLUS, HIGH);
}
else {
sensedata[dataptr] = sum; // Store the latest data in the buffer
dataptr++; // Update buffer pointer
if (dataptr == NUMSAMPLES) { // Check if dataptr went past end
dataptr = 0; // Reset the dataptr to beginning
buffull = 1; // Mark that buffer is full
}
}
}
Testing
Source:
https://www.instructables.com/id/An-LED-You-Can-Blow-Out-Like-a-Candle/