Introduction: That's Hot

Picture of That's Hot

How to use Arduino and 16x2 LCD display room temperature and set a desired temperature.

*You can switch between Fahrenheit and Celsius.

*You can set up your desired temperature.

*When the temperature higher than desired temperature,

the LED will be lighted.

Step 1: What Do You Need?

Arduino UNO
Breadboard
16x2 LCD

Temperature Sensor
Wires
LED

Potentiometer

Button

Resistors

Step 2: How to Do It?

Picture of How to Do It?

Example Code :

#include 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int buttonPin = 9; // pushbutton pin const int temperaturePin = 0; //Temperature sensor pin float voltage, degreesC, degreesF; int displaysetC, displaysetF; //The value used to display the disired temperature float set; //The Value read from potentiometer const int PotentiometerPin = 1; //PotentiometerPin boolean button; //The button pushed or not int buttonState;//Variables to hold the pushbutton states const int led = 13; // LED pin void setup() { // Set up the pushbutton pins to be an input: pinMode(buttonPin, INPUT); // Set up the LED pin to be an output: pinMode(led, OUTPUT); } void loop() { Potentiometer(); Temperature(set); Button(); LCDdisplay();
}
int Potentiometer() //Read the value from potentiometer and return it.
{
  set = analogRead(PotentiometerPin); 
  set = set / 32; //Make the value fit Fahrenheit
  set = set + 60;
  return (set); 
}
float Temperature(float set) {
  voltage = analogRead(temperaturePin) * 0.004882814;
  degreesC = (voltage - 0.5) * 100.0;
  degreesF = degreesC * (9.0 / 5.0) + 32.0;
  
  int barD = (int) set; //Round the value from potentiometer
  set = (float) barD;
  displaysetC = set - 32;         //Make the value into 5-33 to fit Celsius
  displaysetC = displaysetC * 9;
  displaysetC = displaysetC / 5;
  displaysetC = displaysetC - 40;
  displaysetC = displaysetC / 2;
  displaysetF = set;
}
int Button() {
  // read the current pushbutton states into a variable
  buttonState = digitalRead(buttonPin); 
  if (buttonState == LOW) { //If the button pressed, switch the state
    button = !button;
  }
}
void LCDdisplay() {
  int barF = (int) degreesF;    //Round the value before display
  degreesF = (float) barF;
  int displayF = degreesF;
  int barC = (int) degreesC;
  degreesC = (float) barC;
  int displayC = degreesC;
  lcd.begin(16, 2);
  if (button == true) {
    lcd.print(displayF);
    lcd.print(" Fahrenheit");
    lcd.setCursor(0, 1);
    lcd.println(displaysetF);
    lcd.println("DesiredTemp");
    if (displayF > displaysetF) {
      digitalWrite(led, LOW);
    }
    else {
      digitalWrite(led, HIGH);
    }
  }
  if (button == false) {
    lcd.print(displayC);
    lcd.println(" Celsius");
    lcd.setCursor(0, 1);
    lcd.println(displaysetC);
    lcd.println(" DesiredTemp");
    if (displayC > displaysetC) {
      digitalWrite(led, LOW);
    }
    else {
      digitalWrite(led, HIGH);
    }
  }
  delay(500);
}

Step 3: Important Code

// include the library code:

#include


// initialize the library with the numbers ofthe interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


// set up the LCD's number of columns and rows:
lcd.begin(16, 2);


// Print a message to the LCD.
lcd.print("hello, world!");


// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);

Comments

Henmarsh (author)2017-02-23

What are the values of the resistors and potentiometer you use? Which temp sensor is it?