Датчик температуры LM75A

Не дорогой датчик температуры с шиной 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.



Видео: