Не дорогой датчик температуры с шиной I2C, датчик применяется в системах термозащиты.
Характеристики датчика:
- Диапазон температур: -55°C … +125°C ±2°C
- Разрешение: 9bit для LM75, 11bit для LM75A .
- Напряжение питания: 2.8V … 5.5V
- Связь по I2C, Поддерживает до восьми датчиков LM75 на шине I2C.
- Имеет «встроенный термостат» функцию управления цифровым выходом в зависимости от температуры.
Дополнительные возможности:
У микросхемы есть выход с открытым коллектором, в даташине называется O.C., выход «срабатывает» по достижению заданной в регистре датчика температуры, датчик можно использовать как термостат, для аварийного выключения устройства, автоматического включения вентилятора охлаждения и тд. Аналогичная функция есть в датчике TMP102.
Внешний вид и разновидности модулей:
CJMCU-75:
На али проявился модуль с данной микросхемой, но не с самой демократичной ценою. Купить можно тут или тут.
DIY:
У меня в наличии были только микросхемы, пришлось собирать плату модуля самостоятельно.

Не самая удачная разводка платы, как есть. На плате установлены подтягивающие резисторы на 10к, светодиод с резистором и конденсатор фильтра. Плата в формате .lay

Распиновка микросхемы из даташита.
Подключение датчика к Arduino:

Датчик имеет интерфейс I2C и подключается как любое другое устройство с I2C, на контакты SDA и SCL. Датчик древний и 5 вольтовый.
Установка адреса на шине:
Для установки адреса на шине отвечают выходы, A0, A1 и A2, это младшие биты адреса, подавая на них логический 0 или 1 изменяем адрес микросхемы на шине.
Софт:
Для работы есть библиотека, скачать можно тут. После установки открываем единственный пример:

В строе инициализации объекта нужно задать адрес микросхемы на шине
LM75 sensor; // initialize an LM75 object // You can also initiate with another address as follows: //LM75 sensor(LM75_ADDRESS | 0b001); // if A0->GND, A1->GND and A2->Vcc
для этого закомментируем строку «LM75 sensor;» и раскоментируем строку где устанавливается адрес, в зависимости от состояния ног A0, A1 и A2 зададим адрес, на моем модуле они соединены с массой, значит и адрес заканчивается на 000.
//LM75 sensor; // initialize an LM75 object // You can also initiate with another address as follows: LM75 sensor(LM75_ADDRESS | 0b000); // if A0->GND, A1->GND and A2->Vcc
Загружаем код в Arduino

Открываем «монитор порта» и видим текущую температуру и настройки выхода O.C.