воскресенье, 5 октября 2014 г.

Простой термометр на Arduino UNO и температурном датчике DS18B20

Температурные датчики DS18B20 очень популярны. Они стоят очень дёшево, выдают температуру в цифровом виде, их достаточно легко подключить к микроконтроллерам по однопроводной шине 1-Wire таким образом, что одной ножки микроконтроллера достаточно чтобы адресовать несколько датчиков и считывать с них показания.

Я заказал несколько таких датчиков на eBay. Кроме того, у меня в распоряжении имелся LCD-индикатор размером 2 строки по 16 символов, оказавшийся, впрочем, слегка бракованным (некорректно отображаются 12 и 13-й символы в каждой строке), и мне уже давно хотелось попробовать его в действии. К моему удобству к этому ЖК-модулю был уже припаян I2C-адаптер на чипе PCF8574, точь в точь такой, как описан в этой статье. Из этой же статьи я почерпнул ряд полезных ссылок, в частности на библиотеку для работы LCD-экраном через этот I2C-адаптер.

Подружить Arduino UNO с температурным датчиком DS18B20 оказалось очень нетрудно. Датчик подключается через шину 1-Wire, пртокол которой можно программно реализовать в Arduino. Само собой, для этого имеется готовая библиотека. Кроме этого я использовал ещё одну внешнюю библиотеку для самого датчика DS18B20. В итоге я собрал вот такую схему:


... и написал такой нехитрый скетч:


Собранный термометр выглядит так:


На фотографии один датчик лежит просто так и показывает температуру 27.44 С, другой прикреплен кусочком изоленты к кружке с горячим чаем и показывает 55.00 С.

Комментариев нет:

Отправить комментарий