Простой термометр


С применением специальной микросхемы-датчика температуры DS18B20.


Термометр
Схема термометра

    В этом устройстве установлен микроконтроллер PIC16F84(A), но вместо него без всяких изменений в схеме может быть применён PIC16F628(A).
    При разработке этой схемы основной упор делался на простоту и минимальное количество деталей. Поэтому предусмотрено подключение лишь одного датчика. Несколько датчиков подключить вполне возможно, но в этом случае потребуется установить переключатель для выбора активного датчика вручную. Переключатель может коммутировать выводы DQ датчиков (вывод 2 DS18B20). Программа не позволяет подключать несколько датчиков на одну шину одновременно. Только по очереди.
    В программе не предусмотрена индикация номера активного датчика. Отображается только температура, с точностью 0,5oС. Если температура превышает 100oС, точность ухудшается до 1oС. При отрицательной температуре отображается знак "минус" в крайнем левом разряде индикатора. Если датчик не подключен, или в линии слишком большие помехи, то на индикаторе отображается надпись "OFF".     Светодиодный индикатор повышенной яркости (применить можно любой подходящий с общими анодами) подключен напрямую к порту микроконтроллера. PIC вполне в состоянии обеспечить требуемый ток. Перегрузки портов при этом не происходит.
    Исходник и прошивка для PIC16F84A - скачать в одном архиве!
    И соответствующая модель для проверки в Proteus 6.9.5 - скачать в одном архиве!
    Исходник и прошивка для PIC16F628(A) - скачать в одном архиве!
    И соответствующая модель для проверки в Proteus 6.9.5 - скачать в одном архиве!
    (не забудьте правильность указания пути к hex-файлу проверить для модели PIC в Протеусе)
    В пути к модели для проверки в Proteus не должно быть символов кириллицы (русских букв)! Распаковывайте в папку, например, D:\thermometer

    Собранный термометр вот уже год исправно функционирует у меня на работе.

Внешний вид

    Есть также и вариант печатной платы. Но я считаю его не очень удачным. Индикатор с одной стороны, PIC и остальные детали с другой стороны. Монтаж плотный, SMD-резисторы, перемычек много, в общем - паять неудобно. Зато плата получилась очень компактная. Чуть больше индикатора по размерам. Если посмотреть на фото, то можно увидеть, что она поместилась в корпусе вертикально и расположена прямо за передним светофильтром. Много места в корпусе заняли три батарейки АА. Переключателем выбирается активный датчик, кнопкой включается питание от батареек. А большую часть времени термометр питается от сети через малогабаритный отдельный блок питания (в виде сетевой вилки).
    Гнездо для подключения датчика и внешнего питания расположено на правой боковой стенке. По эстетическим соображениям оно на фотографию не попало. Каждый желающий сможет поставить разъём по своему вкусу и возможностям.
    По многочисленным просьбам выкладываю бета-вариант платы в форматах bmp и Sprint-Layout. Увы, этот вариант далек от совершенства. Индикатор установлен с лицевой стороны, а PIC, кварц и резисторы - со стороны фольги. Пришлось применить много дополнительных перемычек, их можно проследить по принципиальной схеме, на самом рисунке платы показаны не все.
    Скачать вариант платы!
    Желающие могут прислать свои варианты плат, они будут выложены здесь с указанием автора.







www.pic16.nm.ru - сайт о PIC16