This is a fair simple project that you can build using parts from the Starter Kit. The display will show the current temperature in Celsius degrees, and the LEDs will lit each one according to three different temperature ranges. The piezo will play an alarm signal when the temperature goes above 26 degrees.
You'll need:
- 1x Arduino Uno board
- 1x Breadboard
- 1x 16x2 LCD display
- 1x temperature sensor
- 1x 10k encoder
- 1x piezo
- 3x LEDs
- 4x 330 Ohm resistore
- 24x Jumpers
Connect all the items following the schematics above.
Upload the code below to your Arduino Uno using the Arduino IDE, and you are done. Remember that you can supply power through the USB connection or directly with a 9V battery connected to the GND and Vin connection of the Uno.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensorPin = 0;
float tempC;
void setup() {
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(13, OUTPUT);
pinMode(9, INPUT);
lcd.begin(16, 2);
}
void loop() {
tempC = get_temperature(sensorPin);
lcd.setCursor(0,0);
lcd.print("Temperature: ");
lcd.setCursor(0,1);
lcd.print (tempC, 1); lcd.print(" "); lcd.print("C");
delay(200);
if (tempC <= 23){
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
digitalWrite(13, LOW);
noTone(9);
}
else if (tempC > 26){
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(13, HIGH);
tone(9, 440, 250);
delay(500);
}
else {
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(13, LOW);
noTone(9);
}
}
float get_temperature(int pin) {
float temperature = analogRead(pin);
float voltage = temperature * 5.0;
voltage = voltage / 1024.0;
return ((voltage - 0.5) * 100);
}
Comments