TMP102 — это простой в использовании цифровой датчик температуры от Texas Instruments, имеет миниатюрные размеры, высокую точность и стабильность работы, для связи использует шину I2C.
Характеристики датчика:
- Диапазон температур: –40 … 125°C ±1.0, –25 … 85°C ±0.5
- Разрешение: 12 Бит, до 0.0625 °C
- Напряжение питания: от 1,4 В до 3,6 В
- Связь по I2C, Поддерживает до четырех датчиков TMP102 на шине I2C одновременно
- Имеет режимы энергосбережения.
- Имеет «встроенный термостат» функцию управления цифровым выходом в зависимости от температуры.
Дополнительные возможности:
Модуль имеет выход ALT, в даташите на сенсор он указан как ALERT, это выход с открытым коллектором и распаянным на модуле подтягивающим резистором, датчик может формировать на этом выходе логическую единицу или ноль по достижению заданной в регистре температуры.
Подключение датчика к Arduino:
Модуль подключается как и любое другое устройство с шиной I2C, нужно соединить линии SDA и SCL модуля с arduino. На arduino UNO, выходы SDA и SCL дублируются на аналоговый A4 и A5, можно подключать как на картинки ниже.
Но в случаи с leonardo, SDA и SCL находятся на 2 и 3 цифровых пинах, но лучше подключать к дополнительным пинам, где выведена шина I2C, как на картинки ниже, чтобы избежать путаницы.
Питание у модуля строго 3,3 вольт. Выход ALT подключать не обязательно, в данном случаи он подключен для демонстрации работы, для отображения состояния выхода в «мониторе порта».
Установка адреса модуля на шине I2C:
На шине может находится до четырех модулей TMP102, для установки адреса на модуле выведен пин ADD0, который запаян на массу.
В таком виде модуль имеет адрес 0x48, если перемычку отпаять и соединить ADD0 с VCC адрес будет 0x49, с SDA — 0x4A, с SCL — 0x4B соответственно.
Софт:
Библиотека от SparkFun https://github.com/sparkfun/Digital_Temperature_Sensor_Breakout_-_TMP102/tree/V_H13.0/Libraries/Arduino/SparkFun_TMP102_Arduino_Library
Замечаний по настройки и работе библиотеки нет, всё начинает работать с первого раза, но вывод температуры в монитор порта в градус Фаренгейта, но оставлены закомментированные строки для вывода в Цельсиях. Ниже скриншет работы примера SparkFun_TMP102_Breakout_Example.ino.
Видео:
https://youtu.be/sShQub3uykQ