Термометр на pic16f676 своими руками

Добавил пользователь Дмитрий К.
Обновлено: 30.08.2024

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20)

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20) умеет:

  • измерять и отображать температуру в диапазоне:
    -55. -10 и +100. +125 с точностью 1 градус(ds18b20 и ds18s20)
    -в диапазоне -9,9. +99,9 с точностью 0,1 градус(ds18b20)
    -в диапазоне -9,5. +99,5 с точностью 0,5 градус(ds18s20);
  • Автоматически определять датчик DS18B20 или DS18S20;
  • Автоматически проверять датчик на аварию;
  • Запоминать максимальную и минимальную измеренные температуры.

Также в термометре предусмотрена легкая замена 7 сегментного индикатора с ОК на индикатор с ОА. Организована щадящая процедура записи в EEPROM память микроконтроллера. Вольтметр, который неплохо себя зарекомендовал, описан в этой статье - Вольтметр на PIC16F676.

Принципиальная схема цифрового термометра на микроконтроллере разрабатывалась для надежного и длительного использования. Все детали, применяющиеся в схеме, не дефицитные. Схема проста в повторении, отлично подойдет для начинающих.

Принципиальная схема термометра показана на рисунке 1

Принципиальная схема термометра на PIC16F628A

Рисунок 1 - Принципиальная схема термометра на PIC16F628A + ds18b20/ds18s20

Описывать всю принципиальную схему термометра не стану, так как она довольно проста, остановлюсь только на особенностях.

В качестве микроконтроллера применяется PIC16F628A фирмы Microchip. Это недорогой контроллер и к тому же не дефицитный.

Для измерения температуры используются цифровые датчики DS18B20 или DS18S20 фирмы Maxim. Эти датчики не дорогие, малые по размеру и информация о измеренной температуре передается в цифровом виде. Такое решение позволяет, не тревожиться о сечении проводов, о их длине и прочем. Датчики DS18B20, DS18S20 способны работать в диапазоне температур от -55… +125 °С.

Температура выводится на 7-ми сегментный 3-х разрядный LED индикатор с общим катодом (ОК) или с (ОА).

Для вывода на индикатор максимальной и минимальной измеренных температур нужна кнопка SB1. Для сброса памяти так же нужна кнопка SB1

Кнопкой SA1 можно оперативно переключать датчики(улица, дом).

Jamper необходим для переключения общего провода для LED индикатора. ВАЖНО! Если индикатор с ОК – то ставим jamper на нижнее по схеме положение, а транзисторы VT1-VT3 впаиваем p-n-p проводимости. Если LED индикатор с ОА, то jamper переводим в верхнее по схеме положение, а транзисторы VT1-VT3 впаиваем n-p-n проводимости.

В таблице 1 можно ознакомиться со всем перечнем деталей и возможной их заменой на аналог.

Таблица 1 – Перечень деталей для сборки термометра
Позиционное обозначение Наименование Аналог/замена
С1, С2 Конденсатор керамический - 0,1мкФх50В -
С3 Конденсатор электролитический - 220мкФх10В
DD1 Микроконтроллер PIC16F628A PIC16F648A
DD2,DD3 Датчик температуры DS18B20 или DS18S20
GB1 Три пальчиковых батарейки 1,5В
HG1 7-ми сегментный LED индикатор KEM-5631-ASR (OK) Любой другой маломощный для динамической индикации и подходящий по подключению.
R1,R3,R14,R15 Резистор 0,125Вт 5,1 Ом SMD типоразмер 0805
R2,R16 Резистор 0,125Вт 5,1 кОм SMD типоразмер 0805
R4,R13 Резистор 0,125Вт 4,7 кОм SMD типоразмер 0805
R17-R19 Резистор 0,125Вт 4,3 кОм SMD типоразмер 0805
R5-R12 Резистор 0,125Вт 330 Ом SMD типоразмер 0805
SA1 Любой подходящий переключатель
SB1 Кнопка тактовая
VT1-VT3 Транзистор BC556B для индикатора с ОК/ транзистор BC546B для индикатора с ОА KT3107/КТ3102
XT1 Клеммник на 3 контакта.

Для первоначальной отладки работы цифрового термометра применялась виртуальная модель, построенная в протеусе. На рисунке 2 можно увидеть упрощенную модель в протеусе

Упрощенная модель термометра на PIC16F628A

Рисунок 2 – Модель термометра на микроконтроллере PIC16F628A в Proteus’e

На рисунке 3-4 показана печатная плата цифрового термометра

Печатная плата термометра на микроконтроллере PIC16F628A(низ)

Рисунок 3 – Печатная плата термометра на микроконтроллере PIC16F628A(низ) не в масштабе.

Печатная плата термометра на микроконтроллере PIC16F628A(верх)

Рисунок 4 – Печатная плата термометра на микроконтроллере PIC16F628A(верх) не в масштабе.

Термометр, собранный рабочих деталей начинает работать сразу и в отладке не нуждается.

Результат работы рисунки 5-7.

Внешний вид термометра на микроконтроллере PIC16F628A

Рисунок 5 - Внешний вид термометра

Внешний вид термометра на микроконтроллере PIC16F628A

Рисунок 6 - Внешний вид термометра

Внешний вид термометра на микроконтроллере PIC16F628A

Рисунок 7 - Внешний вид термометра

ВАЖНО! В прошивку термометра не вшита реклама можно пользоваться в свое удовольствие.

Поправки, внесенные в рабочую программу:

1 автоматическое определение датчика DS18B20 или DS18S20;

2. снижено время перезаписи в EEPROM(если выполнилось условие для перезаписи) с 5 минут, до 1 минуты.

3. увеличена частота мерцания точки;

Готовая плата отлично поместилась в китайский будильник (рисунки 8, 9).

Термометр на микроконтроллере PIC16F628A в китайском будильнике

Рисунок 8 – Вся начинка в китайском будильнике

Термометр на микроконтроллере PIC16F628A в китайском будильнике

Рисунок 9 - Вся начинка в китайском будильнике

Видео - Работа термометра на PIC16F628A

И так подведем итоги…. В процессе разработки получился термометр на распространенном микроконтроллере PIC16F628A. Термометр оснащен функцией памяти максимальной/минимальной измеренных температур, память, можно сбросить. Для записи в энергонезависимую память выбран щадящий режим. В прошивку не вложена реклама. Легким нажатием на кнопку можно проверить самую максимальную/минимальную измеренную температуру. Термометр автоматически определяет тип, наличие и исправность датчика. Очень легко можно заменить индикатор с ОК на индикатор с ОА. Схема термометра не содержит дефицитных деталей и проста в повторении. В схеме применяются датчик температуры DS18B20 или DS18S20, микроконтроллер PIC16F628А.

По просьбам тех, кто собрал предыдущую конструкцию барометра на PIC 16F684 и датчике давления BMP180, публикуем статью (продолжение). Данное устройство позволяет отображать одновременно и температуру и давление. Для этого в конструкции был применен индикатор на базе микросхемы MAX7219 которая позволяет работать с матрицей 8Х7, применение данного индикатора позволило сократить число задействованных портов микропроцессора.

Датчик температуры применен самый распространенный — 18b20, который имеет трехвыводную конструкцию. DS18B20 (Programmable Resolution 1-Wire® Digital Thermometer). Диапазон измерения температуры составляет от -55 до +125 °C. Для диапазона от -10 до +85 °C погрешность не превышает 0,5 °C.

Схема устройства показана на рисунке 1.

Самодельный цифровой барометр

Индикатор MAX7219 приобретался на Aliexpress. Но данный индикатор продается уже в готовом виде и вам остается только 5ю проводниками его подключить к запрограммированной плате.

Принципиальная схема индикатора показана на рисунке 2, внизу показано фото такого индикатора.

Индикатор MAX7219

Внешний вид собранного устройства показан на фото ниже.

Самодельный барометр

Отрицательные температуры отображаются, минус перед числом и градусы отображаются без десятых долей.

Вольтамперметр на PIC16F676 и 74HC595. Разработка от ur5kby . В универсальности применения можете убедится сами.


Одновременное или поочередное отображение напряжения и тока , индикаторы ОА и ОК ,варианты далее в статье.

Вольтамперметр на распространенных, недорогих PIC16F676 и 74HC595.

Может: отображать измерения 0,0. 99,9В, ток .0 . 9,99А

одновременно отображать напряжения и ток , индикаторы ОА и ОК 2х3 или 2х4.

поочерёдно отображать напряжения и ток , индикаторы ОА и ОК 1х3 или 1х4.

режим переключения отображения измер. одной кнопкой (подкл. 7 нога МК)

запоминает текущий режим индикатора(ов).

Линейность измерений соответствует реальности.


Файл прошивки для индикаторов с ОА (рекомендовано для базовой схемы)

Файл прошивки для индикаторов с ОК

Вариант применения 1х3 , плюс два светодиода (кр.А , зел.V)



Вариант применения 1х4, четвертый разряд отображает стилизованную единицу измерения "V" или "A".



Вариант применения 2х4





Переключение режимов, везде, одной кнопкой ( подключенная на 7 ногу МК), Индикаторы ОА без транзисторных ключей.

Так же возможно применение 2х3 , в общем варианты на любой выбор !

Вот в таком варианте, будет смотреться, очень даже эстетично.

Пробуем работу схемы в Proteus 7.7 SP2.


Далее автор внес в схему и прошивку,некоторые улучшения.

С измерительными входами напряжения - RA0(выв. МК13) и тока - RA1(выв. МК12) добавлены эмиттерные повторители .

ВольтАмперметр на PIC16F676 и семисегментных индикаторах

Одновременное отображение и напряжения и тока, частота обновления показаний ~ 9Гц. Предусмотрено применение индикаторов как с ОА, так и ОК. Кроме того, возможно применение как одного индикатора, так и двух. Причем, если применяются четырех разрядные, то крайний правый разряд отображает стилизованные единицы измерения "V" или "A". Но есть ограничение на применение индикаторов с ОА. При таком включении эммитерных повторителей, появляется "засвет" индикаторов измерительными токами. Т.е. при 2х индикаторной схеме целесообразно применять индикаторы с ОК, в таком случае измеряемые токи не будут оказывать влияния на открывание транзисторных ключей.

Если установлены кнопки, то нажатие кн "В" на левом индикаторе отобразит текущий режим этого индикатора, "-U-" или "-I-". Дальнейшее удержание сменит режим. Для исполнения с одним 3х разрядным индикатором, эта функция поможет вспомнить в каком режиме находится устройство, а для 2х индикаторного исполнения,- поменяет местами отображаемые значения напряжения и тока. В любом случае, для напряжения применена функция гашения незначащих нулей, т.е., если напряжение не превышает значения 9,9В, то на индикаторе мы не увидим первого нуля ("_Х.Х").

Читайте также: