Arduino LED Temperature Indicator
Above is a simuation. Click the "Start Simulation" button to begin. Click on the sensor labled "TMP" to change its value: the LEDs will light themselves according to the sensor's reading.
This design is made to keep track of the temperature in a room.
You give it the parameters you want and it will light a blue LED if it is too cold, a red LED if it's too hot, and a green one if it's just right.
You will need:
- Arduino board: https://amzn.to/2DLjxR2
- Breadboard: https://amzn.to/2RYqiSK
- Jumper wires: https://amzn.to/2Q7kiKc
- 3 220Ω resistors (red-red-brown): https://amzn.to/2S2sV5R
- 3 LEDs (colors of your choice): https://amzn.to/2S5PFlM
- A temperature sensor (mine is an LM35, but most should work): https://amzn.to/2ORLHuQ
Step 1: Make the Circuit
- Red LED goes to digital pin 4 through one of the resistors, and ground
- Green LED goes to digital pin 3 though a resistor, and ground
- Blue LED goes to digital pin 2 through a resistor, and ground
- Pin one (the pin on the left) of the temperature sensor goes to 5v
- Pin two (the pin in the middle) of the temperature sensor goes to analog pin A2
- pin three (the pin on the right) of the temperature sensor goes to ground
Step 2: Code
Connect your Arduino to your computer and upload this code:
const int hot = 87; //set hot parameter const int cold = 75; //set cold parameter void setup() { pinMode(A2, INPUT); //sensor pinMode(2, OUTPUT); //blue pinMode(3, OUTPUT); //green pinMode(4, OUTPUT); //red Serial.begin(9600); } void loop() { int sensor = analogRead(A2); float voltage = (sensor / 1024.0) * 5.0; float tempC = (voltage - .5) * 100; float tempF = (tempC * 1.8) + 32; Serial.print("temp: "); Serial.print(tempF); if (tempF < cold) { //cold digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); Serial.println(" It's Cold."); } else if (tempF >= hot) { //hot digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); Serial.println(" It's Hot."); } else { //fine digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, LOW); Serial.println(" It's Fine."); } delay(10); }