Термометр на микроконтроллере 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(статья)

Архив с проектом

Фотографии

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

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

Комментарии  

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

Примерно такая же просьба, вывод в двоичном коде. Имеются старинные газоразрядные индикаторы ИН18, хотелось бы их использовать.
Заранее спасибо.
Ответить | Ответить с цитатой | Цитировать
 
 
0 # Ерёмин Антон 12.03.2015 21:49
Если правильно Вас понял. То необходимо на сегменты выводить только числа от 0 до 9 в двоичном коде, а разряды поочередно включать. В моей программе кроме цифр от 0-9 выводится дополнительная информация. Как с ней быть?
Ответить | Ответить с цитатой | Цитировать
 
 
0 # Алексей 13.03.2015 17:37
Дополнительную информацию можно отображать светодиодами (например, знак отрицательных температур - несколько красных в линию, децимальная точка- один красный, для индикации верхней и нижней температур - желтый и синий, ошибка датчика - мигающий красный). Двоичный код передается на дешифраторы 155ИД1 через D-триггеры 155ТМ5, которые тактируются сигналами переключения разрядов. Вот примерно так. Это возможно?
Ответить | Ответить с цитатой | Цитировать
 
 
0 # Ерёмин Антон 14.03.2015 20:14
Доброго времени, Алексей. Реализовать все возможно, только на это все необходимо потратить некоторое время. К сожалению, таковым сейчас не располагаю. Могу предложить только вывод температуры на каждый индикатор в двоичном формате, но и дополнительная информация будет выводится в десятичном формате на индикаторы. Что приведет к выходу чисел за диапазон 0-9.
Ответить | Ответить с цитатой | Цитировать
 
 
0 # Ерёмин Антон 14.03.2015 20:15
Или же второй вариант - это поиск готового термометра на необходимых индикаторах.
Ответить | Ответить с цитатой | Цитировать
 
 
0 # Алексей 15.03.2015 11: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
Антон огромное Спасибо,действительно была перемычка,все заработало..
Ответить | Ответить с цитатой | Цитировать
 
 
0 # Ерёмин Антон 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 01:28
Здравствуйте, уважаемые. Сваяв вчера вольтметр, решил сегодня сотворить термометр. Сказано - сделано. Микроконтроллеры только начинаю осваивать (решился на старости лет), но к удивлению все прошло гладко, ну, почти гладко. Проблема была в процессе прошивки (программатор ЕxstraPic), при прошивке IcProg и WinPic выдал ошибку, чтение - все по нулям. Думал глючный микроконтроллер, но то же самое получил и на втором экземпляре. Та, думаю, дай суну контроллер в печатку, вау, все заработало на обеих контроллерах. Разница в показаниях контрольных термометров (Danfjoss, Еllivel) около 0,3 градуса. Великолепно. Спасибо автору. Счас термометр запитан от одного литиевого элемента, выдранного с батареи питания ноутбука, показания не изменились, яркость оч. даже достаточна, оставил на ночь, интересно, насколько хватит заряда.
Ответить | Ответить с цитатой | Цитировать
 
 
0 # Валерий 22.01.2016 13:52
http://pixs.ru/showimage/0122161336_7192655_20357821.jpg
http://pixs.ru/showimage/0122161332_8539231_20357865.jpg
Типа так, ссылка на файлообменник.
Ответить | Ответить с цитатой | Цитировать
 

Добавить комментарий

Уважаемые посетители сайта! Ваш e-mail мне совершенно не нужен, его требует система для идентификации Вас в комментариях, как уникального пользователя. Рассылок никаких не будет. Так что смело следите за темой.


Защитный код
Обновить

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