Page 1 of 7
TMP102 Digital Temperature Sensor Hookup
Guide
Introduction
The TMP102 is an easy-to-use digital temperature sensor from Texas
Instruments. While some temperature sensors use an analog voltage to
represent the temperature, the TMP102 uses the I2C bus of the Arduino to
communicate the temperature.
SparkFun Digital Temperature Sensor Breakout
- TMP102
SE N-1331 4
Required Materials
To follow along with this hookup guide, you will need the following:
TMP102 Hookuo Guide SparkFun Wish List
SparkFun Digital Temperature Sensor Breakout - TMP102
SEN-11931
This is a breakout board for the incredibly small TMP102 digital temp…
SparkFun RedBoard - Programmed with Arduino
DEV-12757
At SparkFun we use many Arduinos and we're always looking for the…
Break Away Headers - Straight
Page 2 of 7
PRT-00116
A row of headers - break to fit. 40 pins that can be cut to any size.…
Jumper Wires - Connected 6" (M/F, 20 pack)
Suggested Reading
Before getting started, you may find the following links useful:
•
•
•
•
•
I2C Protocol
Logic Levels
Installing an Arduino Library
What are Pull-up Resistors?
How to use a Breadbaord
Board Overview
Let’s go over the TMP102 Breakout in detail.
TMP102 Details:
•
•
•
•
Uses the I2C interface
12-bit, 0.0625°C resolution
Typical temperature accuracy of ±0.5°C
3.3V sensor - use inline logic level converters or 10 kΩ resistors to
limit 5V signals
• Supports up to four TMP102 sensors on the I2C bus at a time
Pull-up Resistors
This breakout board has built-in 4.7 kΩ pull up resistors for I2C
communications. If you’re hooking up multiple I2C devices on the same bus,
you may want to disable/enable the pull-up resistors for one or more
boards. On the TMP102, the pull-ups are enabled by default. To disable
them, simply use a hobby knife to cut the traces connecting the left and
right pads of the jumper labeled I2C PU on the back of the board. This will
disconnect the resistors from VCC and from the I2C bus.
Hardware Connections
Connecting the TMP102 to an Arduino
Wiring the TMP102 is very easy! We recommend soldering six male
headers to the breakout board. You can also solder wires to fit your
application’s needs.
Page 3 of 7
Power
This board runs from 1.4V to 3.6V. Be sure to power the board from the
3.3V pin! I2C uses an open drain signaling, so there is no need to use level
shifting; the 3.3V signal will work to communicate with the Arduino and will
not exceed the maximum voltage rating of the pins on the TMP102.
Connections to the Arduino
The TMP102 breakout board has six pins, however we’ll only be using five
of the pins in today’s example. We’ll be connecting VCC and GND to the
normal power pins, two data lines for I2C communication, and one digital
pin to see if there is an alert. If you’re using a newer board that has SDA
and SCL broken out, you can connect the SDA and SCL pins directly to
those pins. If you’re using an older board, SDA and SCL are pins A4 and
A5 respectively.
•
•
•
•
•
VCC → 3.3V
GND → GND
SDA → SDA/A4
SCL → SCL/A5
ALT → A3
This would looks something like this:
The only pin that we aren’t using is ADD0, this pin is used to change the
address of the TMP102. If you’re using multiple TMP102s or another device
that uses that address, you’ll want to use this pin to change the address.
The default address is 0x48. You can change the address by cutting the
ADD0 jumper on the back of the board and connecting an external jumper
wire to the following pins:
• VCC → 0x49
• SDA → 0x4A
• SCL → 0x4B
TMP102 Library and Example Code
Note:This example assumes you are using the latest version of the
Arduino IDE on your desktop. If this is your first time using Arduino,
please review ou tutorial on installing the Arduino IDE. If you have not
previously installed an Arduino library, please check out our
installation guide.
To get started immediately, use the example code and library files below.
Page 4 of 7
/*************************************************************
*****************
TMP102_example.ino
Example for the TMP102 I2C Temperature Sensor
Alex Wende @ SparkFun Electronics
April 29th 2016
~
This sketch configures the TMP102 temperature sensor and print
s the
temperature and alert state (both from the physical pin, as we
ll as by
reading from the configuration register.
Resources:
Wire.h (included with Arduino IDE)
SparkFunTMP102.h
Development environment specifics:
Arduino 1.0+
Hardware Version 13
This code is beerware; if you see me (or any other SparkFun em
ployee) at
the local, and you've found our code helpful, please buy us a
round!
Distributed asis; no warranty is given.
**************************************************************
****************/
#include // Used to establied serial communication o
n the I2C bus
#include "SparkFunTMP102.h" // Used to send and recieve specif
ic information from our sensor
// Connections
// VCC = 3.3V
// GND = GND
// SDA = A4
// SCL = A5
const int ALERT_PIN = A3;
TMP102 sensor0(0x48); // Initialize sensor at I2C address 0x48
// Sensor address can be changed with an external jumper to:
// ADD0 Address
// VCC 0x49
// SDA 0x4A
// SCL 0x4B
void setup() {
Serial.begin(9600); // Start serial communication at 9600 ba
ud
pinMode(ALERT_PIN,INPUT); // Declare alertPin as an input
sensor0.begin(); // Join I2C bus
// Initialize sensor0 settings
// These settings are saved in the sensor, even if it loses
power
// set the number of consecutive faults before triggering al
arm.
// 03: 0:1 fault, 1:2 faults, 2:4 faults, 3:6 faults.
sensor0.setFault(0); // Trigger alarm immediately
Page 5 of 7
// set the polarity of the Alarm. (0:Active LOW, 1:Active HI
GH).
sensor0.setAlertPolarity(1); // Active HIGH
// set the sensor in Comparator Mode (0) or Interrupt Mode
(1).
sensor0.setAlertMode(0); // Comparator Mode.
// set the Conversion Rate (how quickly the sensor gets a ne
w reading)
//03: 0:0.25Hz, 1:1Hz, 2:4Hz, 3:8Hz
sensor0.setConversionRate(2);
//set Extended Mode.
//0:12bit Temperature(55C to +128C) 1:13bit Temperature
(55C to +150C)
sensor0.setExtendedMode(0);
//set T_HIGH, the upper limit to trigger the alert on
sensor0.setHighTempF(85.0); // set T_HIGH in F
//sensor0.setHighTempC(29.4); // set T_HIGH in C
//set T_LOW, the lower limit to shut turn off the alert
sensor0.setLowTempF(84.0); // set T_LOW in F
//sensor0.setLowTempC(26.67); // set T_LOW in C
}
void loop()
{
float temperature;
boolean alertPinState, alertRegisterState;
// Turn sensor on to start temperature measurement.
// Current consumtion typically ~10uA.
sensor0.wakeup();
// read temperature data
temperature = sensor0.readTempF();
//temperature = sensor0.readTempC();
// Check for Alert
alertPinState = digitalRead(ALERT_PIN); // read the Alert fr
om pin
alertRegisterState = sensor0.alert(); // read the Alert fr
om register
// Place sensor in sleep mode to save power.
// Current consumtion typically T_HIGH
until any read operation occurs.
Resources and Going Further
For more information about the TMP102 Breakout, check out the links
below.
•
•
•
•
TMP102 datasheet
TMP102 Breakout Board Schematic
TMP102 Breakout Board Eagle Files
Github repo containing the latest and greatest files and code.
For more sensor fun, check out these other great SparkFun tutorials.
ITG-3200 Hookup Guide
Learn how to interact with the ITG3200 Triple Axis Gyroscope.
MAG3110 Magnetometer
Hookup Guide
Get started with the MAG3110
3-Axis Magnetometer and learn how
to make your own digital compass
that senses the Earth's magnetic
fields.
FLIR Lepton Hookup Guide
MPU-9250 Hookup Guide
See the invisible world of infrared
radiation using the FLIR Dev Kit and
Raspberry Pi.
Get up and running with the MPU9250 9-axis MEMS sensor.
https://learn.sparkfun.com/tutorials/tmp102-digital-temperature-sensor-hookup-guide?_ga=...
3/6/2017
很抱歉,暂时无法提供与“SEN-13314”相匹配的价格&库存,您可以联系我们找货
免费人工找货