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

2013-10-30

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20) – статья с подробным описанием схемы запоминающего термометра и, вдобавок, - логическое продолжение ранее опубликованной мною статьи на яндекс сайте pichobbi.narod.ru. Этот термометр довольно неплохо себя зарекомендовал, и было принято решение немного его модернизировать. В этой статье расскажу, какие изменения внесены в схему и рабочую программу, опишу новые функции. Статья будет полезна новичкам. Позже переделал текущую версию термометра в термометр с коррекцией.

Термометр на микроконтроллере 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. увеличена частота мерцания точки;

Более подробное описание работы термометра можно посмотреть в документе, который можно скачать в конце этой статьи. Если скачивать нет желания, то на сайте www.pichobbi.narod.ru также отлично расписана работа устройства.

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

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

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

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

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

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

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

Файлы к статье:

Термометр на PIC16F628A(статья)

Архив с проектом(обновлён 18.12.17. - добавил прошивки без мерцания точки)

Фотографии

Прочитано 71080 раз

Понравилась статья? Помоги и остальным о ней узнать! Это просто.

Комментарии  

 
0 # Владимир 07.01.2014 17:05
Здравствуйте!
Планирую повторить устройство, но предполагаю сделать оба датчика выносными. Вопрос: какую функцию в схеме выполняют резисторы R14 и R15? Если датчик DD3 сделать выносным, его подключать так же, через резисторы с номиналами как у R14 и Р15?
Спасибо.
 
 
0 # Ерёмин Антон 07.01.2014 22:19
Доброго времени, Владимир!
Датчики можете оба сделать выносными. Резисторы R14,R15 устанавливаются для подавления помех, которые могут наводиться на провод. Он ведь как антенна. В моем случае термометр работает на выносном датчике с проводом для интернета(витая пара) и резисторами R14,R15. Сбоев не наблюдал ни разу!
 
 
0 # Владимир 08.01.2014 18:29
Антон, огромное Вам спасибо что ответили. Значит если датчик DD3 располагать на удалении, то к схеме его подключать необходимо так же как и DD2 через резисторы.
И, если Вас не затруднит, у меня ещё такой вопрос: через резистор R16 плюс питания подается на 3 вывод МК. Мне, человеку не сильно разбирающемуся в электронике, так и хочется спросить, а ко второму и первому выводам МК не требуется также подключить резисторы? Или наоборот - R16 вообще не ставить? На фотографии собранной платы этого резистора и резистора R13 не видно.
Извините что отвлекаю Вас такими вопросами, я опыта не имею, если получится это будет моя первая конструкция на МК.
Спасибо!
 
 
0 # Ерёмин Антон 09.01.2014 10:08
Совершенно верно по поводу датчика DD3, резисторы, кстате, необходимо устанавливать на плате как можно ближе к микроконтроллеру. Резистор R16 добавлен в схему, так как используется вывод микроконтроллера с открытым стоком. Его необходимо "подтянуть" к питанию. Остальных выводов это не касается. За наблюдательность 5+. В процессе наладки печатная плата несколько раз менялась. На фотографии мой первый образец.
 
 
-1 # Владимир 09.01.2014 12:21
Здравствуйте! Благодарю за подробное разъяснение, пока вроде вопросов нет, но это пока....
Программатор собрал сам, Extra PIC по схеме из интернета, а вот МК что то задерживаются, наверное из за праздников. В моем городе магазинов для радиолюбителей нет, всё приходится покупать в интернет магазинах, и выпаивать из плат неисправных устройств.
Ещё раз огромное Вам спасибо за всё!
 
 
0 # Ерёмин Антон 10.01.2014 09:08
Пожалуйста! Будут вопросы - обращайтесь помогу.
 
 
0 # Владимир 12.01.2014 12:33
Здравствуйте Антон!
Спаял схему, запрограммировал МК но к сожалению результат плачевный, на индикаторе Er2. Монтаж проверил, ошибку найти не могу, замыкания минусового провода линии связи с информационным нет, но R15 и температурный датчик почему то сильно греются. Напряжение между выводом Gnd и Vdd дптчика сильно просажено 0,8V/ Отпаивал датчик и подключал к компьютеру (у меня собрана схема для COM порта) там определяется и работает. Проблема в МК?
Спасибо за помощь.
 
 
0 # Ерёмин Антон 12.01.2014 18:05
Здравствуйте, Владимир. Если есть возможность сбросьте фото печатной платы(верх, низ). Желательно чтоб было видно подключение датчика. Адрес supportсобачкаpichobby.lg .ua. Вместо собачка ставим @. А еще попробуйте при выпаяном датчике включить термометр.
 
 
0 # Ерёмин Антон 12.01.2014 18:56
В большинстве случаев ошибки в монтаже платы. Датчик той стороной впаян?
 
 
0 # Владимир 13.01.2014 15:58
Вы правы, умудрился припаять датчик неправильно, теперь всё работает! Если б не моя невнимательность схема заработала бы сразу. Работой термометра доволен, пока готовлю корпус стоит на прогоне - проблем не выявлено.
Кто собирается повторить желаю успеха.
Автору СПАСИБО за материалы и помощь.
 
 
0 # Ерёмин Антон 14.01.2014 22:50
Рад был помочь. Буду и в дальнейшем рад видеть Вас на страницах сайта PIChobby.lg.ua.
 
 
0 # Павел 16.01.2014 09:58
Доброго всем дня один вопрос что впаивать в отверстия dq1, dq 2 ,отверстие с номером 7 и возле рез 2
 
 
0 # Ерёмин Антон 16.01.2014 18:59
Доброго дня, Павел! В отверстия 7, dq1, dq2 впаивается переключатель sa1 - смотрите схему выше. Причем в отверстие 7 впаивается общий провод переключателя sa1, в отверстие dq1 нормально замкнутый контакт sa1, а в dq2 нормально разомкнутый. sa1 нужен для переключения датчиков. В отверстие возле R2 впаивать ничего не нужно, оно вспомогательное.
 
 
0 # Павел 21.01.2014 16:47
Спасибо все работает как часики только одно но,можно ли исправить мигающую запятую на постоянно горящую
 
 
0 # Ерёмин Антон 22.01.2014 09:49
Пожалуйста! Мигающая точка свидетельствует о запущеном 1 минутном таймере. Таймер запускается перед записью в энергонезависимую память и только если было условие превышения пороговых величин. После перезаписи таймер отключается.
 
 
0 # Иван 27.01.2014 08:10
у вас используется трехсимвольный индикатор. Возможно ли использовать четырехсимвольный и как это организовать?
 
 
0 # Ерёмин Антон 27.01.2014 10:49
Доброго времени, Иван. Возможно использовать и четырехсимвольный индикатор, необходимо только вносить поправку в рабочую программу и в печатную плату. Напишите подробнее, что вы хотите выводить на четыре символа.
 
 
0 # Иван 28.01.2014 23:20
да мне в принципе ничего не нужно, просто четырехсимвольные с общим анодом у меня дома лежат, а за трехсимвольными надо в магазин топать =) было бы неплохо отображать + / - . кстати, в вашей схеме используется индикактор с общим анодом или катодом?
 
 
0 # Ерёмин Антон 28.01.2014 23:44
В схеме можно использовать индикаторы с ОА или с ОК. В статье об этом подробно написано. В архиве прошивки есть для индикаторов с ОА и с ОК. Остается лишь изменить печатку. Минус, кстате, и так выводится, а плюс можно и не выводить. Ведь это логично если температура не минусовая - значит она плюсовая.=)))
 
 
+1 # Иван 31.01.2014 20:47
логично) а можете помочь доработать печатку? или хотя бы направление мысли дать) а то я ни разу не имел дела с 7-сегментными индикаторами....
 
 
0 # Ерёмин Антон 31.01.2014 23:43
Имя индикатора скажите. Посмотрю, что можно сделать.
 
 
0 # Иван 07.02.2014 22:17
HSN3642S
 
 
0 # Иван 10.02.2014 01:08
...и резисторами R14,R15. Сбоев не наблюдал ни разу!...
я извиняюсь, а без резисторов разве были сбои ??? производитель датчиков не приводит таких рекомендаций
 
 
0 # Александр 10.02.2014 20:52
Добрый день! Собрал данный девайс! Работает отлично! Но есть одна проблема! У меня есть в наличии три семисегментных индикатора SA23-11SRWA. Хотелось-бы для мамы сделать на них. Но никак запустить не могу. Только точка горит. http://catalog.gaw.ru/index.php?page=component_detail&id=17060 Как я понял-у них вольтаж больше. Может что-нибудь подскажете. Спасибо!
 
 
-1 # Ерёмин Антон 10.02.2014 22:04
Не могу найти даташит на Ваш индикатор HSN3642S. Проверьте экспериментальным путем соответствие с даташитом http://yadi.sk/d/LeNxqrM0HfA9q
 
 
0 # Ерёмин Антон 10.02.2014 22:08
Резисторы R14, R15 - это барьерные резисторы для защиты микроконтроллера от воздействия наносекундных помех. Ведь провод для выносного датчика это отличная антенна для ловли помех. Они не обязательны, но без них устройство может сбоить.
 
 
0 # Анатолий 15.02.2014 22:43
доброго времени суток! собрал я этот девайс включил на экране высветилось Er 1. датчика не видит сам датчик менял местами по разному. в чём проблема? подскажите если можете за ранее спасибо.
 
 
0 # Ерёмин Антон 16.02.2014 02:30
Схема рабочая точно. Проверьте монтаж, исправность проводов, подключение датчика. Желательно на печатку посмотреть...
 
 
0 # Ерёмин Антон 16.02.2014 02:32
Анатолий, а Вы кнопку SA1 ставили?
 
 
0 # Анатолий 16.02.2014 21:34
доброго времени суток! Спасибо за ответ. Кнопку я поставил все работает. просто про неё забыл.
 
 
0 # Sergey 25.02.2014 16:46
Доброго дня! Как переделать вашу схему для использования четырёхсегментного индикатора, и как убрать один датчик температуры?
Просто у меня задача чуть другая: просто надо измерять температуру от -50 до +20 градусов по Цельсию.
 
 
0 # Ерёмин Антон 25.02.2014 19:17
Доброго времени, Sergey . Датчики переключаются механически(кнопкой SA1). По схеме оставляем датчик DD3, вместо кнопки SA1 ставим перемычку(перемыкаем Dq1 и 7). Не используйте 1 разряд вашего индикатора. И тогда останется 3 разряда. Если же хотите чтоб температура выводилась на 4 разряда, то необходимо изменять прошивку.
 
 
-1 # Пётр 04.03.2014 16:07
Добрый день Антон.А индикатр FYS-3912BS-21 будет работать если их 3 штуки запаралелить?
 
 
0 # Ерёмин Антон 04.03.2014 18:11
Доброго времени, Петр. Индикатор FYS-3912BS-21 можете паралелить , только общие аноды не паралельте. Все будет работать. :-)
 
 
0 # Пётр 04.03.2014 20:47
Спасибо я понял.
 
 
0 # Николай 13.03.2014 14:25
Два вопроса, если можно:
1. гасятся ли незначащие нули?
2. как будет изображаться температура -10,5 (к примеру) градусов? или остаются только целые числа?
 
 
0 # Ерёмин Антон 15.03.2014 00:52
Доброго времени, Николай.
Ответы на Ваши вопросы:
1. Нули незначащие гасятся;
2. В диапазоне температур от + 100...+125 и от -10...-55 температура выводиться без учета десятых.
 
 
0 # Николай 17.03.2014 14:35
А по какому принципу происходит округление до целых чисел?
 
 
0 # Ерёмин Антон 19.03.2014 23:17
Цитирую Николай:
А по какому принципу происходит округление до целых чисел?

Не совсем понял вопрос. Вы за какое округление говорите?
 
 
0 # Николай 20.03.2014 11:36
К примеру: -20 будет показывать от -19,5 до 20,4 гр., или от -20 до -20,9?
 
 
0 # Ерёмин Антон 20.03.2014 22:12
Если измеренная температура находится в диапазоне температур +100...+125 или -10...-55, то десятые просто не учитываются. Точность измерения не изменяется, просто десятые нет возможности вывести на индикатор.
 
 
0 # Станислав 01.04.2014 13:09
Добрейший день Еремин Антон !!!

У меня появилась острая необходимость в термометре

пожалуйста напишите мне на почту Я Вам раскажу свою проблему очень жду только Вы мне можете помоч !!!



кстати почти Я Вас заинтересую сутью проблемы !!!!
 
 
0 # Валерий 13.04.2014 00:07
Здравствуйте! Схема работает замечательно. Но, я применил индикаторы FYS-15011BX, высотой 44 мм., по 2 светодиода в сегменте. Для увеличения яркости, коллекторы транзисторов подключил к 8 вольтам, а сопротивления на сегменты уменьшил до 100 ом., стало чуть поярче, но все равно недостаточно. Увеличение напряжения на коллекторах к улучшению не приводят. Не могли бы вы подсказать, что можно сделать, так как печатка уже готова. А добавление ключей в сегменты - это новая печатка. Заранее спасибо!
 
 
0 # Ерёмин Антон 13.04.2014 19:12
Цитирую Валерий:
Здравствуйте! Схема работает замечательно. Но, я применил индикаторы FYS-15011BX, высотой 44 мм., по 2 светодиода в сегменте. Для увеличения яркости, коллекторы транзисторов подключил к 8 вольтам, а сопротивления на сегменты уменьшил до 100 ом., стало чуть поярче, но все равно недостаточно. Увеличение напряжения на коллекторах к улучшению не приводят. Не могли бы вы подсказать, что можно сделать, так как печатка уже готова. А добавление ключей в сегменты - это новая печатка. Заранее спасибо!

Доброго времени, Валерий. Думаю в вашем случае без ключей в сегментах не обойтись. Могу посоветовать применить микросхемы ULN2803 или ULN2003. Код для Вас поправлю.
 
 
0 # Валерий 15.04.2014 02:53
Спасибо за ответ. Я еще уменьшил сопротивления в базах, яркость еще добавилась, и стала более приемлемой. Но за подсказку спасибо! В планах еще часы, размером сантиметров 15, вот и применю эти микросхемы, так как раньше о них не слыхал. Успехов вам, и побольше конструкций на этом сайте.
 
 
0 # Ерёмин Антон 15.04.2014 21:54
Цитирую Валерий:
Спасибо за ответ. Я еще уменьшил сопротивления в базах, яркость еще добавилась, и стала более приемлемой. Но за подсказку спасибо! В планах еще часы, размером сантиметров 15, вот и применю эти микросхемы, так как раньше о них не слыхал. Успехов вам, и побольше конструкций на этом сайте.

Рад был помочь!
 
 
0 # Александр 19.04.2014 12:04
Спаял Ваш девайс с ОА, запустился сразу. Единственное "НО"-внутренний термометр завышает показания в + на один градус.Можно каким-либо образом скорректировать?
 
 
0 # Ерёмин Антон 19.04.2014 18:04
Цитирую Александр:
Спаял Ваш девайс с ОА, запустился сразу. Единственное "НО"-внутренний термометр завышает показания в + на один градус.Можно каким-либо образом скорректировать?

Доброго времени. Производитель датчиков дает гарантию, что погрешность в диапазоне -10 ... +85 градусов не превысит +-0,5 градуса. В остальном диапазоне погрешность может достигать 2 градусов. Смотрите даташит. А еще погрешность в 0,3...0,5 градуса вносится из-за саморазогрева датчика. Из Вашей ситуации два выхода: 1. Заменить датчик, 2. Увеличить время через которое опрашивается датчик.
 
 
0 # Алексей 04.07.2014 22:33
Цитирую Еремин Антон:
Цитирую Александр:
Спаял Ваш девайс с ОА, запустился сразу. Единственное "НО"-внутренний термометр завышает показания в + на один градус.Можно каким-либо образом скорректировать?

Доброго времени. Производитель датчиков дает гарантию, что погрешность в диапазоне -10 ... +85 градусов не превысит +-0,5 градуса. В остальном диапазоне погрешность может достигать 2 градусов. Смотрите даташит. А еще погрешность в 0,3...0,5 градуса вносится из-за саморазогрева датчика. Из Вашей ситуации два выхода: 1. Заменить датчик, 2. Увеличить время через которое опрашивается датчик.

Завышает показания так же на один
градус, как увеличить время опроса? не могли бы вы выложить прошивку, с такой характеристикой?
 
 
0 # Ерёмин Антон 04.07.2014 23:54
Цитирую Алексей:
Цитирую Еремин Антон:
Цитирую Александр:
Спаял Ваш девайс с ОА, запустился сразу. Единственное "НО"-внутренний термометр завышает показания в + на один градус.Можно каким-либо образом скорректировать?

Доброго времени. Производитель датчиков дает гарантию, что погрешность в диапазоне -10 ... +85 градусов не превысит +-0,5 градуса. В остальном диапазоне погрешность может достигать 2 градусов. Смотрите даташит. А еще погрешность в 0,3...0,5 градуса вносится из-за саморазогрева датчика. Из Вашей ситуации два выхода: 1. Заменить датчик, 2. Увеличить время через которое опрашивается датчик.

Завышает показания так же на один
градус, как увеличить время опроса? не могли бы вы выложить прошивку, с такой характеристикой?

https://yadi.sk/d/S_aDlv6xVxCx3 - для ОА задержка опроса датчика 10сек. Пробуйте.
 
 
0 # Алексей 05.07.2014 11:45
https://yadi.sk/d/S_aDlv6xVxCx3 - для ОА задержка опроса датчика 10сек. Пробуйте.
Спасибо за то что откликнулись, и так быстро! Прошил, попробывал, саморазогрев где то в пределах 0.4 градуса с этой прошивкой.
Антон, а можно ли как нибуть получить исходники Вашей прошивки, или проект у вас закрытый? Хотелось бы поковырять ее на предмет подключения к МК сразу двух датчиков, и что бы температура дом\улица показывалась на дисплее с какой то переодичностью, ну и сохранить возможность запоминания мин\мах температуры.
 
 
0 # Ерёмин Антон 07.07.2014 21:03
Укажите Ваш почтовый адрес для обсуждения некоторых деталей.
 
 
0 # Alex90 25.09.2014 07:15
Здравствуйте Антон. Можно ли переделать прошивку, чтоб индикация выводилась в двоичном формате, а индикатор включался через дешифратор "ИД2"? Есть необходимость использовать не только индикатор, а ключи для управления симмистором через обычный двоично-десятичный дешифратор. Заранее спасибо.
 
 
0 # Ерёмин Антон 26.09.2014 22:36
Цитирую Alex90:
Здравствуйте Антон. Можно ли переделать прошивку, чтоб индикация выводилась в двоичном формате, а индикатор включался через дешифратор "ИД2"? Есть необходимость использовать не только индикатор, а ключи для управления симмистором через обычный двоично-десятичный дешифратор. Заранее спасибо.

Здраствуйте Alex90. Опишите подробнее, что конкретно нужно сделать. Желательно на почту. Смотрите обратную связь. Попытаюсь Вам помочь.
 
 
0 # Vladimir 14.10.2014 16:06
Здравствуйте Антон.
Спаял данный девайс на макетной плате. Работает два правых разряда, а первый не горит, на RA4 0 вольт. Нагрузку с порта убирал, напряжения не появилось. Менял PIC16F628A на новый результат тот же. Думаю, может программная часть.
Заранее благодарен.
 
 
0 # Ерёмин Антон 14.10.2014 18:34
Доброго времени, Владимир. Схема и программа полностью рабочие. Об этом можно судить из предыдущих коментов. Большинство ошибок из-за неправильного монтажа. Проверьте все ещё разочек. И особенно посмотрите установлен ли у Вас резистор R16, для подтяжки вывода к +5В. Кстате, посмотрите видео вот из этой статьи http://pichobby.lg.ua/poleznosti/cod/assembler/item/40-assembler-dlya-ds18x20.html. На макетной плате собрана именно схема этого термометра.
 
 
0 # Vladimir 14.10.2014 19:22
Не могу понять, R16 добавил, но ничего не изменилось.
Микросхему применил, PIC16F628A-I/SO. Ещё идет засветка сегментов индикатора, цифру трудно разобрать. Применил транзисторы BC 548B. Буду думать дальше.
 
 
0 # Ерёмин Антон 14.10.2014 19:53
Эти транзисторы можно применять совместно с прошивкой для индикатора с общим анодом. А у Вас какой индикатор установлен?
 
 
0 # Vladimir 14.10.2014 21:20
Да... схема с общим катодом :lol:
 
 
0 # Ерёмин Антон 14.10.2014 21:36
Если внимательно читали статью, то там написано: Jamper необходим для переключения общего провода для LED индикатора. ВАЖНО! Если индикатор с ОК – то ставим jamper на нижнее по схеме положение, а транзисторы VT1-VT3 впаиваем p-n-p проводимости. Если LED индикатор с ОА, то jamper переводим в верхнее по схеме положение, а транзисторы VT1-VT3 впаиваем n-p-n проводимости. Транзисторы BC 548B npn проводимости. Их необходимо заменить на другие c pnp проводимостью. И правильно выставить jamper.
 
 
0 # Vladimir 14.10.2014 22:10
Спасибо, Антон. Схема заработала ! Транзисторы остались от похожего проекта с индикаторами, подвела самонадеянность. Но зачем R16 нужен для подтяжки RA4, если внутренняя подтяжка порта существует ?
 
 
0 # Ерёмин Антон 14.10.2014 22:13
Этот вывод с открытым стоком.
 
 
0 # Ерёмин Антон 14.10.2014 22:14
Порт Б имеет внутренние подтягивающие резисторы(если мне не изменяет память)
 
 
0 # Алекс 26.10.2014 19:12
Антон, скажите какой максимальной может быть длинна кабеля от датчика до прибора
 
 
0 # Ерёмин Антон 26.10.2014 20:28
Пробовать нужно. Однозначно сказать не могу. Для своих целей длинна кабеля использовалась около 7м. Сбоев замечено не было.
 
 
0 # Александр 05.11.2014 22:46
Антон, здравствуйте. Помогите пожалуйста разобраться. Собрал данную схему. После включения, блок питания показывает короткое и на vdd контролера падение напряжения до 1,5 вольта. Вытаскиваю контроллер, КЗ исчезает, напряжение нормальное, но естественно ничего не работает. Вставил контроллер обратно в колодку - опять КЗ. Перепроверил сборку раз 20. Вроде всё в порядке. Может подскажите возможную причину?
 
 
0 # Ерёмин Антон 06.11.2014 18:10
Доброго времени, Александр. Сбросьте фото печатной платы(верх, низ) на почту support собачка pichobby.lg.ua. Плату, кстате, с сайта использовали? Или своя собственная? Какую прошивку используете?
 
 
0 # Ерёмин Антон 07.11.2014 21:43
Проблема Александра решилась. Автор по ошибке изготовил плату в зеркальном отражении. Будьте, пожалуйста, внимательными при изготовлении печатных плат.
 
 
0 # Александр 25.11.2014 12:46
Добрый день, Антон.
А какой период опроса датчиков в выложенной Вами прошивке? И нельзя ли его увеличить в общедоступной прошивке, если существующая величина периода опроса приводит к заметному саморазогреву датчиков?
 
 
0 # Ерёмин Антон 25.11.2014 17:11
Доброго времени, Александр. Температура обновляется каждые 800мс. У меня саморазогрев датчика совсем незначительный. Им можно пренебречь. При внесении задержки опроса датчика снижается чувствительность к быстрым измерениям температуры. Быдет ли такое интересно?
 
 
0 # Александр 25.11.2014 18:08
Да, я думаю будет.
Исходя из

" # Алексей 05.07.2014 10:45
https://yadi.sk/d/S_aDlv6xVxCx3 - для ОА задержка опроса датчика 10сек. Пробуйте.
Спасибо за то что откликнулись, и так быстро! Прошил, попробывал, саморазогрев где то в пределах 0.4 градуса с этой прошивкой..."

Точность измерения должна повыситься. Тем более, что Вы позиционируете данную конструкцию как бытовую, для измерения температуры воздуха в помещении и на улице. Ну а для "специальных" приложений, где быстродействие термометра должно быть максимальным как раз, ИМХО, подойдет существующая прошивка. Заранее спасибо.
 
 
0 # Ерёмин Антон 25.11.2014 19:03
Какая задержка(на Ваш взгляд) между обновлениями температуры должна быть? Мне не тяжело добавлю в архив.
 
 
0 # Александр 26.11.2014 00:56
Пусть и остается такая, как в процитированном отрывке, только для ОК.
 
 
0 # Ерёмин Антон 30.11.2014 22:48
Архив перезалил. Приятного пользования.
 
 
0 # Александр 01.12.2014 17:37
Огромное спасибо. Бум прошивать
 
 
0 # Владимир 22.01.2015 21:18
Антон, когда термостат на сайте опубликуете ?
 
 
0 # Ерёмин Антон 22.01.2015 22:08
Придется немного подождать, статья находится в стадии написания.
 
 
0 # nialki 06.02.2015 13:58
Антон, какие значения записать в конфигурацию?
 
 
0 # Ерёмин Антон 07.02.2015 11:02
Конфигурация следующая: __CONFIG _BODEN_OFF & _CP_ON & DATA_CP_ON & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _INTOSC_OSC_NOCLKOUT
 
 
0 # Алексей 11.03.2015 09:56
Здравствуйте, Антон.
Alex90 писал: Цитирую Alex90:
Здравствуйте Антон. Можно ли переделать прошивку, чтоб индикация выводилась в двоичном формате, а индикатор включался через дешифратор "ИД2"? Есть необходимость использовать не только индикатор, а ключи для управления симмистором через обычный двоично-десятичный дешифратор. Заранее спасибо.

Примерно такая же просьба, вывод в двоичном коде. Имеются старинные газоразрядные индикаторы ИН18, хотелось бы их использовать.
Заранее спасибо.
 
 
0 # Ерёмин Антон 12.03.2015 22:49
Если правильно Вас понял. То необходимо на сегменты выводить только числа от 0 до 9 в двоичном коде, а разряды поочередно включать. В моей программе кроме цифр от 0-9 выводится дополнительная информация. Как с ней быть?
 
 
0 # Алексей 13.03.2015 18:37
Дополнительную информацию можно отображать светодиодами (например, знак отрицательных температур - несколько красных в линию, децимальная точка- один красный, для индикации верхней и нижней температур - желтый и синий, ошибка датчика - мигающий красный). Двоичный код передается на дешифраторы 155ИД1 через D-триггеры 155ТМ5, которые тактируются сигналами переключения разрядов. Вот примерно так. Это возможно?
 
 
0 # Ерёмин Антон 14.03.2015 21:14
Доброго времени, Алексей. Реализовать все возможно, только на это все необходимо потратить некоторое время. К сожалению, таковым сейчас не располагаю. Могу предложить только вывод температуры на каждый индикатор в двоичном формате, но и дополнительная информация будет выводится в десятичном формате на индикаторы. Что приведет к выходу чисел за диапазон 0-9.
 
 
0 # Ерёмин Антон 14.03.2015 21:15
Или же второй вариант - это поиск готового термометра на необходимых индикаторах.
 
 
0 # Алексей 15.03.2015 12:01
Добрый день, Антон. Согласен на вариант вывода всей информации в двоичном коде (4 разряда). Дело в том, что информацию в диапазоне 10-15 дешифратор ИД1 не отображает. Если в этом диапазоне будет дополнительная информация, её можно вытянуть. Готовые изделия мне не интересны, люблю самоделки.
 
 
0 # Андрей 11.04.2015 13:26
Здравствуйте Антон,собрал Ваш чудесный термометр ,все отлично работает ,но есть небольшая проблема на светится точка, ни при какой температуре, менял pic но проблема не решилась прошу помощи, где искать проблему заранее спасибо..
 
 
0 # Ерёмин Антон 11.04.2015 15:48
Печатную плату можно взглянуть. Ошибка может быть только в монтаже.
 
 
0 # Андрей 11.04.2015 17:58
Антон выслал Вам на почту фото своей печатки,ошибок вроде бы не нашел...
 
 
0 # Ерёмин Антон 11.04.2015 18:51
Пробуем следующее. Вынимаем микроконтроллер, +5В подаем на плату и на 1 или 2 или 3 ногу микроконтроллера. Минус на плату и на 16 ногу микроконтроллера. Если все нормально с монтажем, то точка светиться. Судя по фотографии есть перемычка между проводником плюса и резистором R10. Остальные сегменты нормально работают?
 
 
0 # Андрей 11.04.2015 19:04
Антон огромное Спасибо,действительно была перемычка,все заработало..
 
 
-1 # Ерёмин Антон 11.04.2015 19:11
Пожалуйста! Рад был помочь.
 
 
0 # Кирыч 18.05.2015 19:33
Здравствуйте, не могли бы вы предоставить исходный текст программы для например mplab
 
 
0 # Ерёмин Антон 19.05.2015 21:59
Весь исходный код предоставить не могу, но отдельно можно почитать о библиотеке для работы с датчиками http://pichobby.lg.ua/poleznosti/cod/assembler/item/40-assembler-dlya-ds18x20.html, условная компиляция - http://pichobby.lg.ua/poleznosti/statii/item/62-if-else.html или скачать устаревший исходник с http://pichobbi.narod.ru.
 
 
0 # PERAND75 03.06.2015 19:37
измерять и отображать температуру в диапазоне:
-55...-10 и +100...+125 с точностью 1 градус(ds18b20 и ds18s20)
-в диапазоне -9,9...+99,9 с точностью 0,1 градус(ds18b20)
-в диапазоне -9,5...+99,5 с точностью 0,5 градус(ds18s20); извините немного не понял диапазон измерений!(0) (-1) будет измерять, и можно ли данный девайс применить в автомобиле доработав систему питания стабилизатором 78L05 ? Спасибо!
 
 
+1 # Ерёмин Антон 03.06.2015 20:26
Доброго времени PERAND75. Будет измерять -55 до +125 градусов. Схему можно легко модернизировать для применения в автомобиле.
 
 
0 # PERAND75 03.06.2015 22:41
Доброго времени Антон. А возможно ли подредактировать прошивку, то есть убрать внутреннюю память МК (эта функция ни к чему), а добавить звуковую сигнализацию и мигание при (0) (-) сигнализируя гололед? На примере http://avtoelectro.radioliga.com/device.php?show=climat_termo Спасибо!
 
 
0 # Ерёмин Антон 04.06.2015 23:00
Доброго времени PERAND75. Прошивку можно подправить. Только подождать немного придется. А чем схема в вашем посте не подходит?
 
 
0 # фВиктор 13.09.2015 11:26
прошивка с 10 секундным опросом датчика для общего катода не работает
 
 
0 # Ерёмин Антон 13.09.2015 11:57
фВиктор, ОЧЕНЬ СТРАННО! У всех работает, а у Вас нет? Вы, предыдушие коменты читали? Конкретнее можно написать? Собрали плату, тестите в протеусе?
 
 
0 # Ерёмин Антон 13.09.2015 12:01
Для особо не доверчивых собрал термометр на макетке, записал видео. Немного обработаю и выложу в ютуб.
 
 
0 # Ерёмин Антон 13.09.2015 21:02
Вот видео - https://youtu.be/zsjXd2BjxY0. Надеюсь развеит все сомнения. Если лень все смотреть версия для 10 сек начинается где-то с 4-ой минуты
 
 
0 # фВиктор 15.09.2015 22:53
Здравствуйте Антон! Собрал термометр и прошил 10сек. прошивкой, индикатор даже не засветился. У меня в наличии 2 микроконтроллера пробовал их прошивать этой прошивкой ничего не происходит. Попробовал обычной прошивкой и всё заработало! Микроконтроллеры б.у. может быть из за этого? Я немогу понять в чём дело.
Видео посмотрел, очень понравилась коррекция показаний.
Антон а где можно посмотреть схему с коррекцией?
Заранее спасибо за ответ!
 
 
0 # Ерёмин Антон 16.09.2015 00:09
Попробуйте перекачайте архив. Новая статья с термометром появится к концу недели. Отпишитесь о результатах.
 
 
0 # Валерий 21.01.2016 02:28
Здравствуйте, уважаемые. Сваяв вчера вольтметр, решил сегодня сотворить термометр. Сказано - сделано. Микроконтроллеры только начинаю осваивать (решился на старости лет), но к удивлению все прошло гладко, ну, почти гладко. Проблема была в процессе прошивки (программатор ЕxstraPic), при прошивке IcProg и WinPic выдал ошибку, чтение - все по нулям. Думал глючный микроконтроллер, но то же самое получил и на втором экземпляре. Та, думаю, дай суну контроллер в печатку, вау, все заработало на обеих контроллерах. Разница в показаниях контрольных термометров (Danfjoss, Еllivel) около 0,3 градуса. Великолепно. Спасибо автору. Счас термометр запитан от одного литиевого элемента, выдранного с батареи питания ноутбука, показания не изменились, яркость оч. даже достаточна, оставил на ночь, интересно, насколько хватит заряда.
 
 
0 # Валерий 22.01.2016 14:52
http://pixs.ru/showimage/0122161336_7192655_20357821.jpg
http://pixs.ru/showimage/0122161332_8539231_20357865.jpg
Типа так, ссылка на файлообменник.
 
 
0 # Сергей 46 13.12.2017 10:38
Здравствуйте, вопрос такой. Если в течении, например, 5-ти часов температура будет плавно расти или уменьшаться то точка все это время будет мигать?
 
 
0 # Ерёмин Антон 14.12.2017 12:02
Здравствуйте, Сергей 46. Точка начинает мигать если измеренная температура превысила максимальные сохранённые в памяти. Когда таймер отработает, значения перезапишутся в памяти и точка мигать перестанет. Пока опять измеренная температура не превысит максимальные значения в памяти.
 
 
0 # Сергей 46 14.12.2017 15:38
А можно сделать точку всегда горящей не нарушая алгоритм программы? Человек же не сидит постоянно возле градусника и не не наблюдает за ним. А то мигающая точка напоминает что перед тобой часы. Хочется повторить ваш проект, то мигание как то не нравиться. Спасибо
 
 
0 # Ерёмин Антон 15.12.2017 14:30
Здравствуйте, Сергей 46. Мерцание точки можно отключить, алгоритм при этом не измениться.
 
 
0 # Сергей 46 15.12.2017 16:27
Если можно, сделайте такое изменение в прошивке. Можно сода, а можно на почту maximov_sergey_собакаukr. net
 
 
0 # Ерёмин Антон 18.12.2017 13:15
Здравствуйте, Сергей 46. Обновил архив. Скачивайте. Мерцание точки отключил.
 
 
0 # Сергей 46 18.12.2017 13:39
Цитирую Ерёмин Антон:
Мерцание точки отключил.

Спасибо большое, начинаю заниматься вашим проектом
 
 
0 # Николай Вл 30.03.2018 15:54
Антон, здравствуйте. У меня проблема с программированием PIC. Программирую Brenner 8, а также pickit2. Программирование проходит успешно на обоих программаторах, пишет всё ок, все окна зеленые. Проверяю - ошики программирования 1098, ошибки еепром - 3. Считываюся одни ноли. Пик 2 штуки, обе в другом устройстве работают. Прошиваю pic16f628a_OK.HEX. Пробовал и другие, всё то же. В прошивке не стоит какая-нибудь защита? Плату пока ещё до конца не собрал.
 
 
0 # Николай Вл 30.03.2018 17:35
Прошивку просто записал без последующей проверки и чтения и всё заработало.
 
 
0 # Ерёмин Антон 30.03.2018 21:24
Здравствуйте, Николай Вл. В прошивке стоит защита программы, вот почему считываются нули. При этом всё исправно работает. В ближайшее время отключу защиту кода и ошибки не будут возникать. Спасибо Вам за повторение термометра.
 
 
0 # Игорь 33 13.05.2018 18:08
Антон, здравствуйте. Повторил вашу схему всё работает,но показания температуры завышены на четыре градуса, как отрегулировать и в чём может быть причина такого.
 
 
0 # Ерёмин Антон 13.05.2018 21:23
Здравствуйте, Игорь 33. С чем сравниваете показания термометра. С другим датчиком можете проверить?
 
 
-1 # Игорь 33 14.05.2018 17:08
Антон, здравствуйте. У меня есть два ртутных термометра для измерения температуры,они показывают 22 градуса, а ваш прибор показывает 26 градусов.
 
 
0 # Ерёмин Антон 14.05.2018 23:22
Здравствуйте, Игорь 33. Подозрения только на датчик. Жалко, что другого нет. Если Вы пользуетесь только одним датчиком, то могу подготовить для Вас прошивку, как в статье - https://pichobby.lg.ua/shemu/termometry/item/80-term-na-pic16f628a.html. Только придётся ещё одну кнопку добавлять. Ну или на время подпаять и настроить коррекцию. Уточните только какую прошивку Вам нужно. Индикатор с ОА или ОК.
 
 
0 # Андрейка 17.05.2018 10:44
Антон, я правильно понял ВТ 1 НПН типа?
 
 
0 # Ерёмин Антон 17.05.2018 11:30
Здравствуйте.

Jamper необходим для переключения общего провода для LED индикатора. ВАЖНО! Если индикатор с ОК – то ставим jamper на нижнее по схеме положение, а транзисторы VT1-VT3 впаиваем p-n-p проводимости. Если LED индикатор с ОА, то jamper переводим в верхнее по схеме положение, а транзисторы VT1-VT3 впаиваем n-p-n проводимости.
 
 
0 # Андрейка 17.05.2018 10:52
И скажите ещё вот ранее в комментариях говорили что возникают какие то проблемы с прошивкой, какого рода они? я так понял они исправлены ?
 
 
0 # Ерёмин Антон 17.05.2018 11:35
Никаких проблем с прошивкой нет. Большинство причин, по которым схема не запускается с первого раза - это ошибки монтажа. Ещё сам датчик DS18B20 может саморазогреваться из-за частого опроса. Что вносит свою погрешность. Вот почему в архиве есть прошивки с интервалом опроса в 10 секунд. Саморазогрев, соответственно, будет меньше.
 
 
0 # Андрейка 17.05.2018 11:46
Спасибо я понял
 
 
0 # Андрейka 17.05.2018 17:45
В архиве есть файл печатной платы, по моему в нём ошибки не так ли ?
 
 
0 # Ерёмин Антон 17.05.2018 23:38
Андрейка, в архиве есть файл печатной платы. Ошибок в нём нет. Если бы они были, то давно бы их устранил. Если есть, что написать - пишите, а так это просто болтовня.
 
 
0 # Станислав 18.05.2018 19:50
Не пойму, на принципиальной схеме есть джампер а на фото с макетом его нету
 
 
0 # Ерёмин Антон 18.05.2018 23:31
На фото самый первый вариант печатной платы. После плату дорабатывал. Вот почему последняя версия платы немного не совпадает с фото. Повторяйте термометр по моей печатной плате, присылайте фото на почту - mediaсобачкаpichobby.lg.ua. Собачка заменить на @. Обновлю фотки на сайте.
 
 
0 # Илья Власов 28.05.2018 09:06
Здравствуйте Антон, уже не раз видел что отвечали на вопрос с джампером, понял что он нужен для переключения в случаях пользования индикаторов с общим Анодом или Катодом. Скажите Антон если я собираюсь припаять индикатор с общим катодом и транзисторы КТ3107 соответственно джампер в принципе не нужен будет да?
 
 
0 # Ерёмин Антон 28.05.2018 12:52
Здравствуйте, Илья. Совершенно верно! Джампер можно и не ставить. Достаточно впаять перемычку в соответствии с выбранным индикатором.
 
 
0 # Илья Власов 04.06.2018 01:27
хотел уточнить ещё Антон, отверстия коьорые остаются рядом с кнопкой и датчиком на плате просто для удобства подключения? и взял пару резисторов по больше мощности, другие не нашол думаю на работе не сильно отразится?
 
 
0 # Ерёмин Антон 04.06.2018 17:22
Здравствуйте, Илья. На печатной плате есть отверстия 7, Dq1, Dq2. Отверстия нужны для подключения переключателя SA1. Если датчик будет всего один, то отверстие 7 потребуется замкнуть либо с Dq1, либо с Dq2.

Мощность резисторов в сторону увеличения можно менять. Главное чтобы поместились!
 
 
0 # Илья Власов 07.06.2018 21:33
Добрый вечер Антон, скажите а какой ток должен быть у батареек?
 
 
0 # Rail 27.04.2019 07:53
Нужно описание принципиальной схемы электрической. Заранее спасибо
 

Добавлять комментарии могут только зарегистрированные пользователи.

Все права защищены. При указании активной, индексируемой ссылки на сайт MICROPAS.RU, полное или частичное использование материалов разрешается. Уважайте чужие труды! Не забывайте проставлять ссылки! Правообладателям
© Ерёмин Антон Юрьевич 2013-2021гг.