Home Code MCP9808 digital temperature sensor example

MCP9808 digital temperature sensor example

by shedboy71

MCP9808 digital temperature sensor example

The MCP9808 digital temperature sensor converts temperatures between -20°C and +100°C to a digital word with ±0.5°C (max.) accuracy. The MCP9808 comes with user-programmable registers that provide flexibility for temperature sensing applications. The registers allow user-selectable settings such as Shutdown or low-power modes and the specification of temperature Event and Critical output boundaries. When the temperature changes beyond the specified boundary limits, the MCP9808 outputs an Event signal.

The user has the option of setting the event output signal polarity as an active-low or active-high comparator output for thermostat operation, or as temperature event interrupt output for microprocessor-based systems. The event output can also be configured as a Critical temperature output.

This sensor has an industry standard 2-wire, SMBus and Standard I2C™Compatible compatible (100kHz/400kHz bus clock) serial interface, allowing up to eight sensors to be controlled in a single serial bus.
Features

Accuracy:
±0.25°C (typical) from -40°C to +125°C
±0.5°C (maximum) from -20°C to +100°C

User Selectable Measurement Resolution:
0.5°C, 0.25°C, 0.125°C, 0.0625°C

User Programmable Temperature Limits:
Temperature Window Limit
Critical Temperature Limit

User Programmable Temperature Alert Output
Operating Voltage Range: 2.7V to 5.5V

More details about the sensor at http://www.microchip.com/wwwproducts/en/MCP9808

This typically comes in a breakout such as the one in the breakout below

mcp9808 breakout

mcp9808 breakout

Layout

temperature-MCP9808_bb

 

Software
[codesyntax lang=”bash”]

git clone https://github.com/adafruit/Adafruit_Python_MCP9808.git
cd Adafruit_Python_MCP9808
sudo python setup.py install

[/codesyntax]

Run it like this

[codesyntax lang=”bash”]

cd examples
sudo python simpletest.py

[/codesyntax]

Here is the code for simpletest.py

[codesyntax lang=”python”]

import time
import Adafruit_MCP9808.MCP9808 as MCP9808

def c_to_f(c):
	return c * 9.0 / 5.0 + 32.0

sensor = MCP9808.MCP9808()

# Initialize communication with the sensor.
sensor.begin()

# Loop printing measurements every second.
print 'Press Ctrl-C to quit.'
while True:
	temp = sensor.readTempC()
	print 'Temperature: {0:0.3F}*C / {1:0.3F}*F'.format(temp, c_to_f(temp))
	time.sleep(1.0)

[/codesyntax]

Results

You should see this in the terminal window

mcp9808

mcp9808

 

Links

Adafruit MCP9808 High Accuracy I2C Temperature Sensor Breakout Board [ADA1782]

You may also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More