Часы-термометр с анимированной сменой индикации (PIC16F628A). Простой цифровой термометр на PIC16F628A и датчике DS18B20 Термометр для высокой температуры на pic

Главная / Ходовая часть

Конструкция 2-х канального термометра на PIC16F628A и DS18B20, предназначенного для домашнего применения, заинтересовала, как простых радиолюбителей, так и тех у кого есть автомобиль.

Для применения в автомобиле конструкция термометра претерпела ряд изменений, как схемотехнических, так и программных. Надпись "Дом" была заменена на "Салон", а в нижней строке дисплея теперь выводится напряжение бортовой сети автомобиля. При реализации функции измерения напряжения бортовой сети возникли трудности, связанные с отсутствием у примененного микроконтроллера цифро-аналогового преобразователя (АЦП). Зато в микроконтроллере имеется модуль компараторов, который и был использован для измерения бортового напряжения. С помощью модуля компараторов оказалось возможным измерять напряжение в диапазоне входных напряжений от 5,6В до 16В с дискретностью измерения 0,7В. Это самый оптимальный вариант для решения поставленной задачи без замены микроконтроллера. Зная напряжения бортовой сети можно оценить состояние аккумуляторной батареи. Сразу при включении устройства (с помощью замка зажигания или другим способом) выполняется измерение бортового напряжения. Если величина бортового напряжение оказалась меньше чем 10,5В автомобильный термометр-вольтметр оповестит звуковым сигналом (в течении 1,5с.) и одновременно выведет в нижней строке дисплея сообщение "Аккум - разряжен" примерно на 3...4с. Далее в нижней строке будет отображаться текущее значение бортового напряжения. Если величина напряжения будет меньше 5,6В на индикаторе будет отображаться сообщение " Напряжение <6B ", а если больше 16В - " Напряжение >16B ".

Описание схемы:

В качестве управляющего контроллера D1 используется микроконтроллер фирмы Microchip PIC16F628A, работающий в данном устройстве от внутреннего тактового генератора (4МГц).

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

Резисторы R11...R15, совмесно с входными встроенными защитными цепями индикатора, обеспечивают согласование уровней сигналов управления, поступающих на индикатор.

Питание индикатора осуществляется от параметрического стабилизатора напряжения, обеспечивающего значение напряжения питания индикатора около +3,3В. Стабилизатор напряжения выполнен на стабилитроне V5, резисторе R10 и конденсаторе фильтра С8. Питание на стабилизатор поступает от источника стабилизированного напряжения +5В. Измерение температур осуществляется цифровыми датчиками температуры U1 и U2 фирмы Maxim DS18B20. Эти датчики имеют заводскую калибровку и позволяют измерять температуру окружающей среды от -55 до +125°С, причем в интервале -10...+85°С производитель гарантирует абсолютную погрешность измерения не хуже ±0,5°С. На границах диапазона измеряемых температур точность ухудшается до ±2°С.Индикация показаний термометра во всем диапазоне измеряемых температур выполняется с дискретностью ±0.1°C.

Обмен данными и командами между микроконтроллером D1 и датчиками температуры U1 и U2 осуществляется с помощью последовательного интерфейсного канала 1-Wire. Для упрощения программного обеспечения датчики подключены на отдельные входы микроконтроллера. Протокол обмена при этом по шине 1-Wire упрощается: не требуется адресация датчиков и их предварительная инициализация.

Резисторы R4, R6 являются нагрузочными резистороми для линий интерфейса 1-Wire. Резисторы R5, R7 выполняют функцию защиты внутреннего источника питания термометра при коротком замыкании цепей питаний датчиков.

Разъем Х3 используется для внутрисхемного программирования микроконтроллера D1. Его необходимо устанавливать в случае использования микроконтроллера в SMD исполнении или когда микроконтроллер в DIP корпусе непосредственно впаивается в плату, а не устанавливается в панельку. Разъем Х3 обеспечивает непосредственное подключение программатора PICKIT2 к термометру.

Пъезоизлучатель SP1 обеспечивает вывод звуковых сигналов, оповещающих о разрядке аккумуляторной батареи.

Внутренняя схема питания автомобильного термометра реализована следующим образом:- с разъема Х4 бортовое напряжение поступает через диод V1 и резистор R3 на микросхему интегрального стабилизатора напряжения U3 типа 7805.

Данная микросхема из напряжения бортовой сети формирует стабилизированное напряжение +5В для питания микроконтроллера, параметрического стабилизатора индикатора и цифровых датчиков температуры;

Диод V1 препятствует прохождению импульсных помех отрицательного напряжения в цепи питания термометра, защищает устройство при неправильной подачи питания на устройство (переполюсовка питания), а также совместно с конденсатором С1 препятствует перезапуску микроконтроллера устройства при провалах напряжения бортовой сети при включении стартера автомобиля или других энергоемких потребителей электроэнергии автомобиля; - Резистор R3 совместно с ограничительным диодом (супрессором) V2 защищает внутренние цепи термометра от перенапряжений, возникающих от влияния импульсных помех.

Узел формирования аналогового сигнала, необходимого для измерения напряжения бортовой сети, собран на резистивном делителе напряжения R1,R2, конденсаторе C2 помехоподовляющего фильтра (R1, C2), и диодах V3, V4, защищающих совместно с резистором R1 аналоговый вход микроконтроллера от перенапряжений.

Желательно для повышения точности измерения напряжения резисторы R1 и R2 использовать с 1% точностью, но так, как дискретность измерения очень большая (0,7В) - это условие не обязательно.

Мощность резистора R3 должна быть не менее 0,5Вт, а мощность стальных резисторов может быть 0,125Вт для выводных и 0,1Вт для SMD резисторов

Опытный образец автомобильного термометра был собран на односторонней печатной плате:

Внимание печатная плата и монтаж опытного образца выполнены по схеме - Shema_avto_termo_3310_pic16f628.spl, файл которой представлен ниже. Отличие от представленной выше схемы только в оформлении и в позиционных обозначениях элементов.

Настольные и настенные часы с термометрами выполнены в корпусах от стрелочных часов. Часы и термометр изготовлены как отдельные, самостоятельные устройства.

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

Датчик температуры DS18B20 настольных часов выведен за окно на улицу. Провода изолированные 0,35мм, длиной примерно 10 метров

Часы собраны на одинарных 7-ми сегментных светодиодных индикаторах зеленого цвета. Размер цифры 14х25,4мм – хорошо различимы с любого уголка комнаты. Обратите внимание, что индикатор подключен без гасящих резисторов. Это связано с тем, что каждый сегмент состоит из двух соединенных последовательно светодиодов и номинальное напряжение 3,8 вольта. При динамической индикации токи не превышают допустимые.

Стабилизатор напряжения находится в вилке - адаптере. Он собран на 3 ваттном трансформаторе и высокочастотном преобразователе – стабилизаторе LM2575T-5.0 по стандартной схеме. Микросхема без радиатора, практически не греется. Разъём для блока питания 3,5мм. Кварц 4 МГц.

Транзисторы n-p-n любые маломощные. Кнопки 6x6 H=14/10мм припаяны со стороны проводников. Длина толкателя кнопок выбирается исходя из требований конструкции. При каждом нажатии на кнопку добавляется единичка. При удержании – счет ускоряется до разумной скорости.

Резисторы МЛТ – 0,25. R3 – R6 1-3 кОм.

Аккумуляторы: 4 штуки из GP- 170, или подобные. При отключении сетевого напряжения они питают только микроконтроллер.

Диоды желательно подобрать с наименьшим падением напряжения в прямом направлении.
Платы изготовлены из одностороннего фольгированного стеклотекстолита.
НЕХ файл, схема, печатки в папке №1.

Вариант 2: на одной плате

В этот корпус не помещались две платы: часов и термометра. Уменьшать размеры индикатора часов не хотелось.

Отображать время и температуру одним индикатором по очереди в настольных часах мне не нравится.
Пришлось взять для термометра другой индикатор меньшего размера и нарисовать новую печатную плату. Поэтому схема и прошивка для термометра другие.

НЕХ файл и схема термометра в папке № 2. Печатная плата там же.
Схема часов без всяких изменений взята из первого раздела.

Ниже вы можете скачать прошивки и печатные платы в формате HEX

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Вариант 1
МК PIC 8-бит

PIC16F628A

1 В блокнот
VR1 DC/DC импульсный конвертер

LM2575

1 В блокнот
VT1-VT4 Биполярный транзистор

КТ3102

4 В блокнот
VD1, VD2, VD4 Диод

Д310

3 В блокнот
VD3 Диод Шоттки

1N5819

1 В блокнот
VS1 Диодный мост

DB157

1 В блокнот
С1, С2 Конденсатор 20 пФ 2 В блокнот
С3, С5 Конденсатор 0.1 мкФ 2 В блокнот
С4 330 мкФ 16 В 1 В блокнот
С6 Электролитический конденсатор 100 мкФ 35 В 1 В блокнот
R1, R2 Резистор

10 кОм

2 В блокнот
R3-R6 Резистор

1 кОм

4 В блокнот
R7, R10 Резистор

100 Ом

2 В блокнот
L1 Катушка индуктивности 330 мкГн 1 В блокнот
Tr1 Трансформатор 1 В блокнот
F1 Предохранитель 100 мА 1 В блокнот
Батарея 4.8 В 1 В блокнот
HL1, HL2 Светодиод 2 В блокнот
S1, S2 Кнопка 2 В блокнот
Z1 Кварц 4 МГц 1 В блокнот
Индикатор FYS10012BG21 1 В блокнот
Вариант 2
МК PIC 8-бит

PIC16F628A

1 В блокнот
VT1-VT4 Биполярный транзистор

КТ3102

1 В блокнот
С1, С2 Конденсатор 20 пФ 2 В блокнот
С3 Конденсатор 0.1 мкФ 1 В блокнот
R1 Резистор

4.7 кОм

1 В блокнот
R2, R3, R5, R6 Резистор

Цифровой термометр, собранный самостоятельно с нуля, не только послужит вам по своему прямому предназначению, но, как и всё, что сделано своими руками, повысит вашу самооценку (а может быть, через несколько лет станет дорог и как память).

Без сомнения, цифровой термометр в хозяйстве - вещь полезная, но мало функциональная: кроме измерения температуры, ни на что больше не ориентирована. В этом плане термометр на микроконтроллере окажется более полезным, поскольку имеет возможность включать и выключать какую-либо нагрузку в зависимости от изменения температуры.

Однако в том случае, если вам хочется сделать что-то стоящее своими руками, то, как первый шаг, такая конструкция себя вполне оправдывает - приобретаемый вами опыт бесценен.

Итак, для начала выберем наипростейшую схему термометра, построенного на микроконтроллере PIC16F84A, цифровом датчике температуры DS18B20, обладающем точностью измерения до 0,5 градуса, и четырёхразрядном светодиодном индикаторе с общим анодом. В моём случае применён дисплей FYQ-3641BG-21E.

Достоинством схемы является её простота - из дискретных элементов нам понадобятся десяток резисторов, несколько конденсаторов и кварцевый резонатор на 4 МГц. Основной недостаток - как и все электронные устройства, терморегулятор нуждается в источнике питания.

Применение батареек делает прибор мобильным, но срок работы от одного комплекта батареек может составить всего 1-2 недели. Запитывание термометра от сетевого блока питания "привязывает" его к какой-либо розетке, что не всегда удобно.

Добавлю, что на схеме не показано подключение питания к микроконтроллеру - плюс питания подаётся на 14 вывод, а минус - на 5 вывод микросхемы.

Часы на PIC16F628A и датчике температуры DS18B20.

4-х сегментный светодиодный индикатор.

Анимированная смена индикации.

Вариант простых часов на популярном и доступном микроконтроллере PIC16F628A. Фактически c них начинался проект на AVR .

Описание часов.


1. Функции.

– часы, формат отображения времени 24-х часовый, часы:минуты.

– цифровая коррекция точности. Возможна ежесуточная коррекция ±25 сек. Установленное значение в 1 час 0 минут 30 сек будет прибавлено/вычтено из текущего времени.

– термометр.

– индикация. Поочередная.

– настраиваемая анимация смены показаний.

– использование энергонезависимой памяти микроконтроллера для сохранения настроек при отключении питания.

– если в основном режиме нажать на кнопку PLUS , то на индикаторы выводится время, если нажать на MINUS – температура. При отпускании кнопок возобновляется автоматическая смена показаний.

2. Настройка.

2.1. При включении питания часы в основном режиме.

2.2. Нажатием на кнопку SET производится вход в режим настроек и выбора параметра для установки. По-очереди доступны для установки:

– минуты;

– часы;

– секунды (обнуляются при нажатии на кнопки PLUS или MINUS );

– величина коррекции. В старшем разряде символ " с ";

– время индикации текущего времени. В старших разрядах символы " tc ". Диапазон установки 0÷99 сек. Если установлен 0, то время отображаться не будет;

– время индикации температуры. В старших разрядах символы " tt ". Диапазон установки 0÷99 сек. Если установлен 0, то температура отображаться не будет;

– выбор эффекта анимации. В старших разрядах символы " EF ". Если установлен 0, смена информации будет проводиться без эффектов , если выбран автоматический режим (символ А ), то будет производиться поочередная смена эффектов. Если выбран режим r , то смена эффектов будет производиться случайным образом.

– выбор скорости анимации. В старшем разряде символ " P ". Диапазон установки 0÷99. Одна единица соответствует примерно 2 мсек, чем выше величина, тем медленнее идет анимация.

2.3. Устанавливаемый параметр мигает.

2.4. Удержанием кнопок PLUS / MINUS производится ускоренная установка параметра.

3. Примечания.

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

При отключении основного питания (+12 V ) индикация отключается, часы продолжают идти. Питание МК осуществляется от резервного источника.

В архиве прошивки для индикаторов с общим катодом и анодом, проект в Proteus и описание.

Вопросы, пожелания в форум .

11.03.2015

Добавлена обновленная прошивка для индикатора с общим катодом. В новой прошивке больше эффектов анимации и небольшие изменения в алгоритме. Подробное описание в архиве.

Описание работы термометра

Назначение этого термометра всего лишь показывать температуру. Небольшие отличия от других подобных схем только в формате вывода температуры на LED индикатор, который представляет из себя 4-х разрядный сверхяркий CA04-41SRWA. В качестве датчика температуры применён DS18B20 в обычном включении с отдельным проводом питания.

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



Затем на индикатор выводятся сами показания температуры.



Вид вывода показаний следущий:






Отличие формы вывода есть только для низких положительных температур. При индикации такой температуры к символу "градус" добавлен знак "C". То есть градусы цельсия.Символ "градус" присутствует на индикаторе при любой измеряемой температуре.

Датчик температуры DS18B20 измеряет температуру с разрешением 0,0625 градусов цельсия. Термометр считывает показания из датчика и округляет их до десятых долей градуса. Десятые доли градуса выводятся на индикацию во всех режимах индикации, кроме режима температур меньших, чем -10 градусов цельсия. Это сделано для того, чтобы на показаниях отрицательных температур всегда присутствовал знак "минус".

Показания присутствуют на индикаторе в течение 30 секунд. Затем прибор снова уходит в спящий режим и индикатор выключается.


Моделирование термометра в протеусе


Модель в протеусе позволила отработать программную часть термометра не собирая сам прибор в железе. Все режимы оттестированы. Сбоев при моделировании в программе нет.



Саму модель можно загрузить по ссылке: termo_i_v2.DSN

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


Схема нарисована отталкиваясь от рисунка печатной платы. Сначала была сделана разводка проводников печатной платы, таким образом, чтобы длина проводников и расположениен деталей было оптимальным и только после того, как на печатной плате было получено соответствие портов микроконтроллера PIC16F628A выводам индикатора CA04-41SRWA была составлена точная принципиальная схема.


Печатная плата термометра


© 2024 spares4bmw.ru -- Автомобильный портал - Spares4bmw