#include <LiquidCrystal.h>
#include <Servo.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Servo servoMotor;
const int tempSensorPin = A5;
const int redPin = 8;
const int greenPin = 9;
const int bluePin = 10;
void setup() {
lcd.begin(16, 2);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
servoMotor.attach(13);
}
void loop() {
int tempReading = analogRead(tempSensorPin);
float voltage = tempReading * 5.0;
voltage /= 1024.0;
float temperatureC = (voltage - 0.5) * 100;
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperatureC);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(temperatureF);
lcd.print(" F");
if (temperatureC <= 23) {
setColor(0, 255, 0);
servoMotor.write(0);
} else if (temperatureC > 23 && temperatureC < 30) {
setColor(255, 255, 0);
servoMotor.write(45);
} else if (temperatureC >= 30) {
setColor(255, 0, 0);
servoMotor.write(90);
}
delay(1000);
}
void setColor(int red, int green, int blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}