SMS solutions
PBX systems
Building robot hardware
Building electronics
Ozeki Matrix
Getting started
Arduino sensors
Soil moisture
Wind Sensor
Infrared Remote
Connecting Arduino to devices
Connecting Arduino
Robot electronics with Arduino
Cases and covers
Building your projects
Building robot software
Robot training
Upload Arduino code

Soil moisture Soil moisture | US1881 US1881

How to connect a TMP36 temperature sensor to Arduino



The TMP36 is an analog temperature sensor. With this chip you can measure what the ambient temperature is! These sensors use a solid-state technique to determine the temperature. They use the fact as that temperature increases, the voltage across a diode increases at a known rate. (Technically, this is actually the voltage drop between the base and emitter - the Vbe - of a transistor.) By precisely amplifying the voltage change, it is easy to generate an analog signal that is directly proportional to the temperature. These Arduino sensors are one of the best tools to measure temperature because they are stable (no moving parts), precise and never wear out. It is easy to be consistant between sensors and reading in many enviromental conditions and there is no need for extra calibration. Moreover, beginners can use it too, because it is cheap and easy to assemble.


  • Size: TO-92 package (about 0.2" x 0.2" x 0.2") with three leads
  • Temperature range: -40°C to 150°C / -40°F to 302°F
  • Output range: 0.1V (-40°C) to 2.0V (150°C) but accuracy decreases after 125°C
  • Power supply: 2.7V to 5.5V only, 0.05 mA current draw
  • 10 mV/°C scale factor (20 mV/°C on TMP37)
  • ±2°C accuracy over temperature (typ)
  • ±0.5°C linearity (typ)
  • Stable with large capacitive loads
  • Less than 50 μA quiescent current
  • Shutdown current 0.5 μA max

About the sensor

Another great news for beginners! The chips of these sensors are solid and not that delicate so they do not need to be handled carefully. Also please pay attention to static electricity. Connect the sensor correctly to Arduino and supply it between 2.7 – 5.5V DC.

Pins of the TMP36 sensor

Pin assignment

Using the TMP36 is very easy, simply connect the left pin to power (3,3V or 5V) and the right pin to ground (GND). Then the middle pin will have an analog voltage that is directly proportional (linear) to the temperature. The TMP36 doesn't act like a resistor. Because of that, there is really only one way to read the temperature value from the sensor, and that is plugging the output pin directly into an Analog (A0) input. The analog voltage is independant of the power supply.

How to connect TMP36 to Arduino

Reading the Analog Temperature Data

If you're using a 5V Arduino, and connecting the sensor directly into an Analog pin, you can use these formulas to turn the 10-bit analog reading into a temperature:
Voltage at pin in milliVolts = (reading from ADC) * (5000/1024)
This formula converts the number 0-1023 from the ADC into 0-5000mV (= 5V)

If you're using a 3.3V Arduino, you'll want to use this:
Voltage at pin in milliVolts = (reading from ADC) * (3300/1024)
This formula converts the number 0-1023 from the ADC into 0-3300mV (= 3.3V)

Then, to convert millivolts into temperature, use this formula:
Centigrade temperature = [(analog voltage in mV) - 500] / 10

Example code

This example code for Arduino shows a quick way to create a temperature sensor, it simply prints to the serial port what the current temperature is in both Celsius and Fahrenheit.

int sensorPin = 0;
void setup()

void loop() 
int reading = analogRead(sensorPin); 
float voltage = reading * 5.0;
voltage /= 1024.0;
Serial.print(voltage); Serial.println(" volts");
float temperatureC = (voltage - 0.5) * 100 ; 
Serial.print(temperatureC); Serial.println(" degrees C");
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF); Serial.println(" degrees F");


Copyright © 2000- - Ozeki Ltd |
Home > Technology > Robotics > Building electronics > Arduino > Arduino sensors > TMP36
Legal | Privacy policy | Terms of use
Page: 1153 | Login |