Arduino Temperature Sensor Using LM35
Intro: Arduino Temperature Sensor Using LM35
Introduction
The LM35 series are precision integrated-circuit temperature devices with an output voltage linearly proportional to the Centigrade temperature. LM35 is three terminal linear temperature sensor from National semiconductors. It can measure temperature from -55 degree Celsius to +150 degree Celsius. The voltage output of the LM35 increases 10mV per degree Celsius rise in temperature. LM35 can be operated from a 5V supply and the stand by current is less than 60uA. The pin out of LM35 is shown in the figure below.
Features
• Calibrated Directly in Celsius (Centigrade)
• Linear + 10-mV/°C Scale Factor
• 0.5°C Ensured Accuracy (at 25°C)
• Rated for Full −55°C to 150°C Range
• Suitable for Remote Applications
• Low-Cost Due to Wafer-Level Trimming
• Operates from 4 V to 30 V
• Less than 60-μA Current Drain
• Low Self-Heating, 0.08°C in Still Air
• Non-Linearity Only ±¼°C Typical
• Low-Impedance Output, 0.1 Ω for 1-mA Load
PinOuts Of LM35 is Shown in image.
You can download the datasheet from below file.
STEP 1: Hardware Required and Circuit Diagram
- Arduino Board (Any) Buy it from Flipkart
- LM35 Sensor Buy it from Flipkart
- BreadBoard
Connect the Circuit as shown in image and upload the following code.
STEP 2: Programming the Arduino
/*Code designed by Sujay Alaspure in SA Lab */
const int sensor=A5; // Assigning analog pin A5 to variable 'sensor'
float tempc; //variable to store temperature in degree Celsius
float tempf; //variable to store temperature in Fahreinheit
float vout; //temporary variable to hold sensor reading
void setup() {
pinMode(sensor,INPUT); // Configuring sensor pin as input
Serial.begin(9600);
}
void loop() {
vout=analogRead(sensor); //Reading the value from sensor
vout=(vout*500)/1023;
tempc=vout; // Storing value in Degree Celsius
tempf=(vout*1.8)+32; // Converting to Fahrenheit
Serial.print("in DegreeC=");
Serial.print("\t");
Serial.print(tempc);
Serial.print(" ");
Serial.print("in Fahrenheit=");
Serial.print("\t");
Serial.print(tempf);
Serial.println();
delay(500); //Delay of 1 second for ease of viewing }
STEP 3: Output Result
See the result on Serial Moniter....
First of all, I would like to thank you for reading this guide ! I hope it helps you.
If You have any queries I am happy to help you.....
Drop a Comment. Your feedback is valuable for me.
11 Comments
tgray1 3 years ago
neodali 4 years ago
in DegreeC= 291.99 in Fahrenheit= 557.59
in DegreeC= 291.99 in Fahrenheit= 557.59
in DegreeC= 291.99 in Fahrenheit= 557.59
in DegreeC= 291.99 in Fahrenheit= 557.59
in DegreeC= 291.99 in Fahrenheit= 557.59
in DegreeC= 291.99 in Fahrenheit= 557.59
in DegreeC= 291.99 in Fahrenheit= 557.59
what's the problem ?
alusinehjalloh11 4 years ago
How can I solve this problem?
Thanks for your understanding
tgray1 4 years ago
49DAVE 5 years ago
Jim0000 5 years ago
Is there a sensor that could be used with this circuit and code that will have a temperature range up to 200 deg. C?
I need one for monitoring a two stroke engine head temperature.
Thanks for the page.
Jim.
RavinderK19 5 years ago
GghV 5 years ago
gabimal_ro 6 years ago
Hi Sujay, thanks for posting this! Quick question: I did this schematic but the temperature is not showed correctly. I got variations between 120-202 Celsius on room temperature.
I actually tried several schematics with LM35 but I got the same results. I'm using an arduino nano with atmel 328P chipset if matters.
Any idea why is not working correctly? Thank you!
salab 6 years ago
you should check LM35 pin outs properly. if you connect it in wrong manner. it will not give proper output. Else there should not any issue.
DIY Hacks and How Tos 6 years ago
Nice tutorial. You should enter this in the Arduino contest.