Temperature reading of human body using LM35 and Arduino UNO

The aim of this project is to read the temperature of the human body. In this project, I have shown how you can read information from LM35 using Arduino and display it on Led and serial monitor.

Components required:

  • Arduino Uno
  • LM35 (Temperature Sensor)
  • LCD
  • Connecting wires

Circuit Diagram

Description of components and its configurations:

  • Arduino Uno

Arduino UNO is a microcontroller based on the ATmega328P with 14 digital input or output pins of which 6 can be used as PWM outputs. Further there are 6 analog inputs, a 16 MHz quartz crystal.

Arduino has a feature known as the Serial Monitor. The Serial Monitor is another pop-up window and it acts as a separate terminal that communicates by receiving and sending Serial data.

We can set the Baud rate (rate at which the information is transferred in a communication channel) for communication in one of the pulldown bars on the serial monitor, this baud rate should match the value of the baud rate you have set in your sketch in Setup. Example: –  Serial.begin(9600).

  • LM35
LM35 Sensor

LM35 – Linear Monolithic 35, is calibrated directly in Celsius(centigrade), this is its advantage over linear temperature sensors calibrated in Kelvin. For every 0.01V increase in voltage 1°C with a 0.5°C Ensured Accuracy at 25°C

Lm35 has three pins, from right to left,

Pin 1 – ground (connected to the GND port of Arduino)

Pin 2 – OUT (output, it is an analog signal. This pin is connected to any one analog port of the Arduino, here we have used pin A1.)

Pin 3 – VCC (input voltage to the sensor, LM35. LM35 requires a 5V input, this in is connected to the 5V supply port of the Arduino.)

  • LCD
LCD display 16X2

a 16×2 LCD display is the most basic display device and very commonly used. It has  16 characters per line and there are 2 such lines.

register select (RS) pin controls the LCD’s memory you’re writing data to. You can select either the data register, which holds what goes on the screen, or an instruction register, which is where the LCD’s controller looks for instructions on what to do next.

Read/Write (R/W) pin that selects reading mode or writing mode

An Enable pin that enables writing to the registers

data pins (D0 -D7). The states of these pins (high or low) are the bits that you’re writing to a register when you write, or the values you’re reading when you read.

There’s also a display constrast pin (Vo)power supply pins (+5V and Gnd) and LED Backlight (Bklt+ and BKlt-) pins used to power the LCD, control the display contrast, and turn on and off the LED backlight, respectively.

software used for coding is Arduino IDE


#include<LIquidCrystal.h> //Library for LCD

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// LCD pins at which it is attached to the Arduino
const int sensor = A0;
int reading;
float voltage;
float tempC;
void setup() //method used to run the source for the one time onlys
lcd.begin(16, 2);//LCD order i.e. 16 columns & 2 rows
lcd.print(” Temp was “);//prints on LCD
lcd.setCursor(14,0);//setting cursor on LCD
lcd.print(” C “);//prints on LCD
lcd.setCursor(0,1);//setting cursor on LCD
lcd.print(” Volt is “);//prints on LCD
lcd.setCursor(14,1);//setting cursor on LCD
lcd.print(” V “);//prints on LCD
void loop() //method to run the source code repeatedly
reading = analogRead(sensor);
voltage = reading 5.0/1024; tempC = (voltage – 0.5)100;
lcd.setCursor(9,0);//setting cursor on LCD
lcd.setCursor(9,1);//setting cursor on LCD


Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.