Overview

The TMP36 is a low-voltage, precision centigrade temperature sensor manufactured by Analog Devices. It provides a linear voltage output proportional to Celsius temperature at 10 mV/C10\text{ mV/}^\circ\text{C}.

Designed specifically for single-supply 2.7 V to 5.5 V operation (ideal for 3.3V microcontrollers like ESP32 or Raspberry Pi), it incorporates a 500 mV DC offset at 0C0^\circ\text{C}. This offset allows the sensor to measure negative temperatures down to 40C-40^\circ\text{C} without requiring a negative supply voltage rail.

Quick reference

Operating voltage (VCC)2.7 V to 5.5 V DC
Output scale factor10.0 mV / C10.0\text{ mV / }^\circ\text{C} (100 mV100\text{ mV} at 40C-40^\circ\text{C}, 500 mV500\text{ mV} at 0C0^\circ\text{C}, 750 mV750\text{ mV} at +25C+25^\circ\text{C})
Temperature range40C-40^\circ\text{C} to +125C+125^\circ\text{C}
Accuracy±1.0 C\pm 1.0\text{ }^\circ\text{C} typical at +25C+25^\circ\text{C} (±2.0 C\pm 2.0\text{ }^\circ\text{C} max over range)
Quiescent current50 µA typical
Shutdown current0.5 µA max
Package optionsTO-92 (3-pin plastic), SOIC-8, SOT-23

Pinout

Standard TO-92 Plastic Package (Flat side facing you, pins down)

text
        ┌─────────┐
        │  TMP36  │
        └─────────┘
          │  │  │
          1  2  3
PinNameTypeDescription
1VCCPowerSupply voltage (+2.7 V to +5.5 V DC)
2VOUTAnalog OutputVoltage output (500 mV500\text{ mV} offset + 10 mV/C10\text{ mV/}^\circ\text{C})
3GNDPowerGround (0 V)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply VoltageVSV_{S}2.73.3 / 5.05.5VDC
Output Voltage at 0C0^\circ\text{C}V0CV_{0\text{C}}490500510mVTA=0CT_A = 0^\circ\text{C}
Output Scale FactorSS9.810.010.2mV/°C+25C+25^\circ\text{C}
AccuracyΔT\Delta T-2.0±1.0\pm 1.0+2.0°CFull 40C to +125C-40^\circ\text{C} \text{ to } +125^\circ\text{C} range
Quiescent CurrentISYI_{SY}5065µAVS=3.3 VV_{S} = 3.3\text{ V}
Load Capacitance DriveCLC_{L}1000pFWithout series resistor

Temperature Conversion Formula

To calculate temperature (TT in °C) from the measured output voltage (VOUTV_{OUT} in Volts):

T (C)=VOUT (in Volts)0.500 V0.010 V/C=(VOUT (in mV)500)×0.1T\text{ }(^\circ\text{C}) = \frac{V_{OUT}\text{ (in Volts)} - 0.500\text{ V}}{0.010\text{ V/}^\circ\text{C}} = (V_{OUT}\text{ (in mV)} - 500) \times 0.1

With a 10-bit ADC (10241024 steps) on a 3.3 V3.3\text{ V} microcontroller (VREF=3300 mVV_{REF} = 3300\text{ mV}):

VOUT (in mV)=ADC Reading×3300 mV1024V_{OUT}\text{ (in mV)} = \frac{\text{ADC Reading} \times 3300\text{ mV}}{1024}

T (C)=VOUT (in mV)50010T\text{ }(^\circ\text{C}) = \frac{V_{OUT}\text{ (in mV)} - 500}{10}

Wiring

TMP36 PinMicrocontroller (Arduino Uno / ESP32)
1 (VCC)3.3V (or 5V)
2 (VOUT)Analog Input Pin A0 (or ESP32 ADC)
3 (GND)GND

Common mistakes

  • Mixing up LM35 and TMP36 math: The LM35 outputs 0 mV0\text{ mV} at 0C0^\circ\text{C}, whereas the TMP36 outputs 500 mV500\text{ mV} at 0C0^\circ\text{C}. Forgetting to subtract 500 mV yields temperatures 50C50^\circ\text{C} too high!
  • Connecting pins backwards: Swapping VCC and GND causes the package to heat up rapidly and break.
  • Noisy ADC readings from long wires: High capacitive loads (>1000 pF>1000\text{ pF}) can cause VOUTV_{OUT} oscillation. Add a 1 kΩ1\text{ k}\Omega series resistor near VOUTV_{OUT} or a 0.1 μF0.1\text{ }\mu\text{F} bypass capacitor between VCCV_{CC} and GNDGND.

Notes

  • The TMP36 is pin-compatible with the LM35 but operates at lower supply voltages (2.7 V2.7\text{ V} min vs 4.0 V4.0\text{ V} min).

Assets & downloads