// LCD pin layout
// RS -> Arduino digital pin 7
// E -> Arduino digital pin 6
// D4 -> Arduino digital pin 5
// D5 -> Arduino digital pin 4
// D6 -> Arduino digital pin 3
// D7 -> Arduino digital pin 2
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
const int SENSOR_PIN = A0;
const int RELAY_PIN = 8;
const int POT_PIN = A1;
float tempC;
float setTemp;
void setup() {
pinMode(RELAY_PIN, OUTPUT);
lcd.begin(20, 4);
lcd.print("Temp Controller");
}
void loop() {
setTemp = map(analogRead(POT_PIN), 0, 1023, 0, 100); // Map potentiometer value from 0-1023 to 0-100
tempC = 1 / (log(1 / (1023. / analogRead(SENSOR_PIN) - 1)) / 3950.0 + 1.0 / 298.15) - 273.15;
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(tempC);
lcd.print("C");
lcd.setCursor(0, 2);
lcd.print("Set Temp: ");
lcd.print(setTemp);
lcd.print("C");
if (tempC < setTemp) {
digitalWrite(RELAY_PIN, HIGH); // turn on relay
} else {
digitalWrite(RELAY_PIN, LOW); // turn off relay
}
delay(1000);
}