Digital Thermometer with Arduino and LM35DZ Displaying Celsius and farenheit
In this project we will design a digital Thermometer using Arduino and LM35DZ. Output will display temperature in degree celcius and degree farenheit on LCD. Complete and easy to understand steps with explanation of basics of components used. Comparison with mercury thermometer shows precision of designed arduino based digital Thermometer.
Background Introduction of a Digital Thermometer.
Thermometer has two basic elements; a transduser, which senses some change in temperature, and a converter which converts this into numerical value. These numerical values are then processed and displayed.
Temperature monitoring has assumed a very vital role in Medical Practice, Engineering, Control Systems, home healthcare and monitoring temperature on home appliances such as refrigerators, ovens, swimming pools etc., in monitoring experimental chemical processes and reactions as well as maintaining an optimal laboratory environment, in meteorology but are not excluded to the above mentioned areas.
Current advancements in the technology of temperature measurements have led to a huge variety of sensors and measuring instruments now being available for accurate measurements. Most of the types available locally are the analogue types (e.g. mercury in glass thermometer) with setbacks such as inaccuracy, poor sensitivity, inability to retain temperature readings after being moved to an area of different temperature, risks of hazards etc.
In addition, this system is less expensive to build and maintain and user-friendly.
Principle of Operation of Digital Thermometer
The power supply section provides Vcc= +5V which powers the three sections of the digital thermometer. The temperature sensor senses the temperature of the material/object/body under observation to be measured.
While the Arduino forms the main control element of the digital-thermometer. The analog value is fed into an analog channel of the Arduino UNO. The Arduino receives this analog value and converts it into digital signal using in built ADC (analog to digital converter).The digital value of the measured temperature is then displayed on an LCD device.
Construction of Digital Thermometer:
Instruments and Tools used for Construction:
The following are required for the construction of a Digital-Thermometer:
- Arduino Board
- LCD 16 x 2
- 12V Battery
- LM35DZ Temperature Sensor
- LM7805 Voltage regulator
- Capacitor 100uf
- Led (any color)
- AT Mega 328 IC
- Connectors (wires)
Design Methodology of Digital Thermomter
The design of the circuit is in two phases; Hardware and software.
The Systems hardware design is subdivided into four units; power supply, temperature Sensor, Arduino microcontroller and the display unit.
Its block diagram is as shown in Fig 1.1.
Power Supply Section
The three sections of the project require 5V to operate (LM35 Data sheet, 2006; LCD data sheet, 2000). To achieve this, a 12v rating DC battery was used to supply power which is been regulated by an LM7805 voltage regulator. This provides a steady 5V supply (i.e. it regulates the voltage to 5v) for the three sections
A 9V/6V battery could also be used as the input voltage to the regulator.
Temperature Sensor Circuit
The fundamental necessity of this work is the conversion of the measured temperature into a corresponding electrical signal. There are many transducers capable of performing this, among which are thermocouple, thermistor and LM35 IC series.
For convenience, availability and many inherent advantages a version of the LM35 series is chosen for this project. The LM35 series are precision integrated-circuit temperature sensors, whose output voltages are linearly proportional to the Celsius (Centigrade) temperature.
The LM35 requires no external calibration, has low output impedance, linear output and precise inherent calibration that makes interfacing to readout or control circuitry easy. It has very low self-heating property (LM35 Data book, 2010).The LM35DZ is a precision semiconductor temperature sensor giving an output of 10mV per degree Centigrade rise.
The LCD employed is a 16 x 2 type capable of displaying 32 characters in alphanumeric form. It has a wide range of LCD driver power from -3 to 1V with high speed MPU bus interface of 2MHZ when the supply voltage is Vcc = 5V.
Arduino Uno Microcontroller Section
The heart of the system is the Arduino, embedded in it is the ATMega 328 IC (this IC is detachable) a 28pin chip used to control the activities of all other sections.
The Arduino was chosen due to its high performance, flexibility and low power consumption 8bit operation. ATMega 328 is an 8-bit microcontroller that has 32K of flash memory, 1K of EEPROM, and 2K of internal SRAM.
The Atmega328 is one of the microcontroller chips used with Arduino boards. Arduino board comes with either 1 of 2 microcontroller chips, the Atmega168 or the Atmega328.
these 2, Atmega328 is a more upgraded and advanced chip unlike the Atmega168 which has 16K of flash program memory and 512 bytes of internal SRAM .It has 14 digital I/O pins, of which 6 can be used as PWM outputs and 6 analog input pins.
Software Design (Firmware):
The firmware design constitutes the program flow chart and the Source program Codes. The system control as well as the digitization of the analogue signal (sensed temperature) is done by the firmware.
The circuitry was simulated with proteus software.
The source code is written in assembly language and assembled using the Arduino Software IDE and burnt on to the Arduino microcontroller program memory. The flow chart below shows the software algorithm of the microcontroller.
Complete Code for Digital Thermometer is available at the end of this article.
Graphical Representation of Mercury Thermometer Vs Designed Digital Thermometer
The percentage errors in Table 1 above are found using the relation;
Where exact value is the temperature reading from the mercury thermometer, approximate value is the temperature reading from the digital thermometer.
To find the deviation of the digital thermometer, the mean absolute percentage deviation (MAPD) is used. The mean absolute percentage deviation (MAPD) is given by the relation;
Where At is the temperature reading from the mercury thermometer, Ft is the temperature reading from the digital thermometer, and n is the number of different times the readings are taken.
From eqn above,
It could be seen from the above results that the digital thermometer has a mean absolute percentage deviation (MAPD) of 4.69% when compared to the standard mercury in glass thermometer. This is possibly due to the display unit used as it cannot display fractional temperature readings. This also proves the linearity in the output of the temperature sensor and the accuracy of the analogue to digital conversion process by the Arduino.