Все своими руками

Цифровой термометр своими руками

Цифровой термометр на PIC16F628A и датчике DS18B20

Это обычный цифровой термометр, на просторах интернета подобных девайсов очень много. Основа микроконтроллер PIC16F628A и цифровой датчик температуры DS18S20 (DS18B20). В качестве индикаторов применены светодиодные 3-х разрядные индикаторы зеленого цвета. Индикация динамическая. Термометр работает во всем диапазоне температур датчика DS18S20, т.е. от -55 до +125 градусов.


Собран термометр на печатной плате, вместе с индикатором. Датчик и питание подключаются отдельно. Если датчик не подключен, на индикаторе высвечивается буква Е (Error). Никаких особенностей данный прибор не имеет. Диод VD1 служит для защиты от переполюсовки источника питания.
Прибор может работать как с датчиком DS18B20, так и с датчиком DS1820(DS18S20). Под каждый датчик используется своя прошивка микроконтроллера.

Ниже приведен вариант этого термометра с уже установленным на печатную плату диодным мостом и стабилизатором 7805, т.е. для питания этого устройства достаточно подключить вторичную обмотку трансформатора к разъему питания.

Кроме того, на этой плате установлен светодиод, который кратковременно вспыхивает во время опроса микроконтроллером датчика температуры. Светодиод подключен между ножкой RB3 (вывод 9) и «массой», естественно с резистором. Отсутствие светодиода на плате никак на работу термометра не повлияет.
Прибор удобно разместить в любой пластиковой коробке подходящих размеров. Я разместил его в корпусе сетевого блока питания (Адаптора) вместе с трансформатором. Т.е. из коробки выходит только разъем на датчик DS18B20, а сам корпус вставляется в сеть 220В.

Простой цифровой термометр малых размеров

Рассмотрим создание простого цифрового термометра с использованием в качестве температурного датчика – специальный цифровой датчик температуры от фирмы DАLLAS, а точнее ds18b20 и микроконтроллером ATtiny2313. Характеристики предложенного цифрового термометра: пределы измерения от -55 до +125*С ; точность измерение от 0,1 до 0,5*С.

   Фотография датчика ds18b20:

   Работает термометр следующим образом: микроконтроллер подает запрос на поиск и запись адресов датчиков ds18b20, подключенных к линии контроллера по интерфейсу 1Wire. Далее производится чтение температуры с датчиков, которые были найдены, после этого микроконтроллер выводит температуру на 3-х символьный LED, хотя при небольшой модификации прошивки можно подключать и 4-х символьный LED. Тогда температура будет выводится с точность до десятичных долей градуса. Опрос датчика составляет где-то 750 мс. Схема проста и в печатной плате не нуждается, хотя кому больше нравится на печатной плате – можно нарисовать. Я контроллер ATtiny2313 ставил сзади LED индикатора и всё соединял проводами. 

   Принципиальная схема цифрового термометра на ATtiny2313:

    Перейдём к настройки фьюзов микроконтроллера. Для работы с протоколом 1Wire, частота внутреннего генератора МК должна быть не меньше 4 мгц. Вот скриншот фьюзов которые надо выставить при прошивке в Code Vision AVR:

В сети есть прошивки для индикаторов с общим катодом и общим анодом. Так же все прошивки умеют работать с 8 х датчиками ds18b20. Ещё есть прошивка, которая меряет температуру с точностью до десятичных значений, при этом необходим 4х символьный LED дисплей, анод лишнего сегмента цепляют к PORTD.3 , а запятую цепляют на PORTB.7.

   Использовать этот цифровой термометр можно в самом широком спектре устройств.