Термометр на pic16f676 своими руками
Термометр на микроконтроллере 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
Рисунок 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, С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 можно увидеть упрощенную модель в протеусе
Рисунок 2 – Модель термометра на микроконтроллере PIC16F628A в Proteus’e
На рисунке 3-4 показана печатная плата цифрового термометра
Рисунок 3 – Печатная плата термометра на микроконтроллере PIC16F628A(низ) не в масштабе.
Рисунок 4 – Печатная плата термометра на микроконтроллере PIC16F628A(верх) не в масштабе.
Термометр, собранный рабочих деталей начинает работать сразу и в отладке не нуждается.
Результат работы рисунки 5-7.
Рисунок 5 - Внешний вид термометра
Рисунок 6 - Внешний вид термометра
Рисунок 7 - Внешний вид термометра
ВАЖНО! В прошивку термометра не вшита реклама можно пользоваться в свое удовольствие.
Поправки, внесенные в рабочую программу:
1 автоматическое определение датчика DS18B20 или DS18S20;
2. снижено время перезаписи в EEPROM(если выполнилось условие для перезаписи) с 5 минут, до 1 минуты.
3. увеличена частота мерцания точки;
Готовая плата отлично поместилась в китайский будильник (рисунки 8, 9).
Рисунок 8 – Вся начинка в китайском будильнике
Рисунок 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, внизу показано фото такого индикатора.
Внешний вид собранного устройства показан на фото ниже.
Отрицательные температуры отображаются, минус перед числом и градусы отображаются без десятых долей.
Вольтамперметр на 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) добавлены эмиттерные повторители .
Одновременное отображение и напряжения и тока, частота обновления показаний ~ 9Гц. Предусмотрено применение индикаторов как с ОА, так и ОК. Кроме того, возможно применение как одного индикатора, так и двух. Причем, если применяются четырех разрядные, то крайний правый разряд отображает стилизованные единицы измерения "V" или "A". Но есть ограничение на применение индикаторов с ОА. При таком включении эммитерных повторителей, появляется "засвет" индикаторов измерительными токами. Т.е. при 2х индикаторной схеме целесообразно применять индикаторы с ОК, в таком случае измеряемые токи не будут оказывать влияния на открывание транзисторных ключей.
Если установлены кнопки, то нажатие кн "В" на левом индикаторе отобразит текущий режим этого индикатора, "-U-" или "-I-". Дальнейшее удержание сменит режим. Для исполнения с одним 3х разрядным индикатором, эта функция поможет вспомнить в каком режиме находится устройство, а для 2х индикаторного исполнения,- поменяет местами отображаемые значения напряжения и тока. В любом случае, для напряжения применена функция гашения незначащих нулей, т.е., если напряжение не превышает значения 9,9В, то на индикаторе мы не увидим первого нуля ("_Х.Х").
Читайте также: