New Top

All Products By Category

TMP37 Temperature Sensor


Quantity discounts available
SKU: CP0205 Categories: , ,


This is nifty little temperature sensor in a TO-92 package. It was designed to be super easy to read out by converting an analog output voltage converts directly to degrees celsius. There is a Arduino sketch below, but it would be just as easy to use on the Basic Stamp or another microcontroller.

The TMP37 does not require any type of external calibration, and is accurate to 1ºC from 5ºC to 100ºC. The supply current runs low enough that it does not heat itself a significant amount. All you need to do to interface this sensor is to connect ground, power (+3 to 5 volts) and route the output into A/D pin (Arduino analog pin.

The one caveat is that the pinout is not correct for just sticking it into the analog block on a BBB. You need to do a little switcheroo on two leads. The pinout is in images above. Remember that it’s a bottom view of the device.

The temperature reads out directly in 20 mV / degree C. An Arduino sketch is below.

* Arduino Sketch to read a TMP37 Temperature Sensor
* Paul Badger
* 2010
* Sensor works between 5 degrees & 100 degrees C
* 20 mV / degree C
* Can be used with TMP35 & TMP36 by changing voltsPerDegree

float voltsPerDegree = 0.02; // change to 0.01 for TMP35 & 3

void setup() {

void loop() {
int sensorValue;
  float volts;
  float celsius;
  float farenheit;
  sensorValue = analogRead(0);
  volts = sensorValue * 5.0 / 1024.0;  // convert AD units to volts
  // convert volts to celsius
  celsius = (sensorValue * 5.0 / 1024.0) / voltsPerDegree;
  // standard conversion from celsius to farenheit
  farenheit = (((sensorValue * 5.0 / 1024.0) / voltsPerDegree)  * 9.0 / 5.0) + 32;
  Serial.print(sensorValue, DEC);
  Serial.print(" A/D units   ");
  Serial.print(" volts   ");
  Serial.print(" degrees C   ");
  Serial.println(" degrees F");


Additional information

Weight 45 g
Dimensions .2 × 2 × .1 in

, ,