Arduino Temperature Sensor

by Rezz on October 6, 2011

This arduino projects show how to read Celsius and Fahrenheit temperature with LM35 temperature sensor.

Parts List;
1) 1x 16×2 parallel LCD display (compatible with Hitachi HD44780 driver)
2) 1x Arduino
3) 1x 10kΩ potentiometer
4) 1x LM35 temperature sensor
5) Jumper wire

Instruction;
1) Connect all jumper wire as shown in diagram.

2) Connect LM35 center lead to analog pin 1, make sure ground lead connected to ground and Vs lead to 5V pin.

Upload this code to your arduino

/*
  Temperature Sensor
  Reading temperature with LM35 sensor.
  
  Coded by: arduinoprojects101.com
*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

//declare variables
float tempC;
float tempF;
int tempPin = 1;

void setup(){
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  lcd.print("Temp1=");
  lcd.setCursor(0, 1);
  lcd.print("Temp2=");
}

void loop(){
  tempC = analogRead(tempPin);           //read the value from the sensor
  tempC = (5.0 * tempC * 100.0)/1024.0;  //convert the analog data to temperature
  tempF = ((tempC*9)/5) + 32;            //convert celcius to farenheit

  // print result to lcd display
  lcd.setCursor(6, 0);
  lcd.print(tempC,1);
  lcd.print("'C");

  lcd.setCursor(6, 1);
  lcd.print(tempF,1);
  lcd.print("'F");

  // sleep...
  delay(1000);
}

lcd.print(“Temp1=”);
print temperature label.

lcd.setCursor(0, 1);
lcd.print(“Temp2=”);
print temperature label, start print at column 0, second line (0=1st line, 1=2nd line)

tempC = analogRead(tempPin);
reading Vout from LM35 at analog pin 1

tempC = (5.0 * tempC * 100.0)/1024.0;
convert analog data to Celsius reading

tempF = ((tempC*9)/5) + 32;
convert Celsius reading to Farenheit

lcd.print(tempC,1);
print tempC value (,1) is for 1 decimal point.

 

{ 3 comments… read them below or add one }

Jeremy Nation February 5, 2015 at 2:48 am

Your code located here:

tempC = analogRead(tempPin); //read the value from the sensor
tempC = (5.0 * tempC * 100.0)/1024.0; //convert the analog data to temperature
tempF = ((tempC*9)/5) + 32; //convert celcius to farenheit

is off by a tens value, when running this code your celsius output for example will read 226.68 instead of 22.68 which is a huge difference.

I have the correct formula here:

tempC = analogRead(tempPin); //read the value from the sensor
tempC = (5.0 * tempC * 10.0)/1024.0; //convert the analog data to temperature
tempF = ((tempC*9)/5) + 32; //convert celcius to farenheit

Reply

Erick June 25, 2015 at 11:24 pm

hi, i can use any type of arduino?

Reply

Thomas Gaspick April 27, 2018 at 6:57 pm

I’m assuming that this is for a 0 degree to 100 degree Celsius thermometer. What would it take to make it work with the LM35C — the -40 degree to 110 degree Celsius version of the LM35? I’d like to have a version with the LM35 installed outside the house, for outdoor temperature monitoring.

Reply

Cancel reply

Leave a Comment

Previous post:

Next post: