How to Build a LM335 Temperature Sensor Circuit
In this project, we will demonstrate how to build temperature sensor circuit using a LM335 sensor.
As a temperature sensor, the circuit will read the temperature of the surrounding environment and relay this temperature to us back in degrees Kelvin.
The difference between an LM335 and LM34 and LM35 temperature sensors is the LM335 sensor gives out the temperature in degrees Kelvin, while the LM35 sensor gives out the temperature in degrees Celsius and the LM34 sensor gives out the temperature in degrees Fahrenheit. All 3 are calibrated different to output the millivolt voltage reading in proportional to these different units of measurement.
The LM335 sensor outputs 10mV/°K. So if the LM335 is giving an output reading of 2.943 (which is 2943mV), then this is equivalent to a temperature of 294.3° Kelvin. All you have to do is take the output reading and divide it by 10 in order to get the temperature output reading. This output reading of 294.3° kelvin is equivalent to 70°F and 21.11°C.
The IC we will use to measure the temperature in this circuit is the LM335 IC.
We will integrate this with the arduino to
measure the temperature. The arduino will then read this measured value from the LM335 and translate into degrees
kelvin, fahrenheit and celsius,
which we will be able to read from the computer from the arduino serial monitor.
- Arduino Board
- LM335 Temperature Sensor IC
- USB with type A and B connectors
We can use any type of arduino board.
The LM335 is a low voltage IC which uses approximately +5VDC of power. This is ideal because the arduino's power pin gives out 5V of power. The IC has just 3 pins, 2 for the power supply and one for the analog output.
The output pin provides an analog voltage output that is linearly proportional to the fahrenheit temperature. Pin 2 gives an output of 1 millivolt per 0.1°F (10mV per degree). So to get the degree value in fahrenheit, all that must be done is to take the voltage output and divide it by 10- this give out the value degrees in fahrenheit.
So, for example, if the output pin, pin 2, gives out a value of 785mV (0.785V), this is equivalent to a temperature of 78.5°K.
We can then easily convert this value into fahrehnheit and celsius by plugging in the appropriate conversion equations.
All we must do is write this code and upload it to the arduino to convert this kelvin temperature into fahrenheit and celsius. The code is shown below.
Below is the pinout of the LM335 IC:
Pin 1 is the Adjustable Pin (Adj). This allows us to calibrate the temperature sensor if we want a more precise temperature readout. It isn't required. Pin 2 is the output pin. We attach this pin to analog pin A0 of the arduino board. We then take a 2KΩ resistor and connect that to the 5V terminal of the arduino. Pin 3 is the ground pin and connects to the ground (GND) terminal of the arduino.
This is the datasheet of the LM335 IC: LM335 Temperature Sensor IC Datasheet.
The arduino, with suitable code, can then interpret this measured analog voltage and output to us the temperature in degrees Kelvin, Celsius, and Fahrenheit.
Also to do this project we need a USB cable with a Type A connector on one end and a Type B connector
on the other end. This is so that we can hook our arduino to a computer and send it code that it can run to display
to us the temperature.
Temperature Sensor Circuit
The temperature sensor circuit we will build is shown below:
This translates into the circuit schematic:
So you circuit connections are:
Pin 1 of the LM335 is unconnected
Pin 2 of the LM335 goes into analog pin A0 of the arduino
Pin 3 of the LM335 goes into ground (GND) of the arduino
Now that we have this circuit setup, we now connect the USB cable from the arduino to the computer.
The type B side of the connector goes into the arduino and the type A side into the USB port of the computer.
Now the computer is connected to the arduino. We can now write code in the processing software to give instructions to the
Code for Temperature Sensor Circuit
int outputPin= 0;
int rawvoltage= analogRead(outputPin);
float millivolts= (rawvoltage/1024.0) * 5000;
float kelvin= (millivolts/10);
Serial.println(" degrees Kelvin");
float celsius= kelvin - 273.15;
Serial.println(" degrees Celsius");
float fahrenheit= ((celsius * 9)/5 +32);
Serial.println(" degrees Fahrenheit");
The code will now be explained. Before we can get a Kevlin reading of the temperature, the analog output voltage must first be read. This will be the raw value divided by 1024 times 5000. It is divided by 1024 because a span of 1024 occupies 5V. We get the ratio of the raw value to the full span of 1024 and then multiply it by 5000 to get the millivolt value. Since the output pin can give out a maximum of 5 volts (1024), 1024 represents the full possible range it can give out. The raw voltage over this 1024 (value) therefore represents the ratio of how much power the output pin is outputting against this full range. Once we have this ratio, we then multiply it by 5000 to give the millivolt value. This is because there is 5000 millvolts in 5 volts.
Once this analog voltage in millivolts is calculated, we then can find the temperature in kelvin by the equation: (millivolts/10)
To get the equivalent temperature in Celsius, we subtract the Kelvin value by 273.15. Once we obtain this Celsius value, we can convert into Fahrenheit with the following equation: ((celsius * 9)/5 +32)
At the end of this program, we put a delay of 3000ms to take the temperature reading every 3 seconds. You can adjust this value to meet your personal preference or program needs.
To see how to integrate this circuit to an LCD for an LCD readout instead of from the Serial Monitor, see
How to Integrate a Temperature Sensor Circuit to an LCD.
How to build a TMP36 Temperature Sensor Circuit
How to build a LM35 Temperature Sensor Circuit
How to build a LM34 Temperature Sensor Circuit
How to Build a Hall Effect Sensor Circuit
How to Build a Laser Diode Circuit
How to Build a Relay Driver Circuit
How to Build an Overvoltage Protection Circuit
How to Build a Transient Voltage Suppressor (TVS) Circuit
How to Build a Touch Sensor Circuit
How to Build an Accelerometer Circuit
How to Build a Motion Detector Circuit
How to Build a Vibration Detector Circuit