Реклама ⓘ
Главная » Автоматика в быту
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Два термометра на PIC16F628A и DS18B20

Информацию о температуре в комнате и на улице (или в салоне автомобиля и за бортом) можно получить с помощью одного микроконтроллера, двух датчиков и одного 4-х цифрового светодиодного индикатора. Пределы измерения от - 55.0 до +125.0 градусов Цельсия с точностью отображения 0.1. Нужно только помнить, что конструкторы обещают погрешность датчиков не более ± 0.5 градуса в диапазоне от -10 до +85.

Показания температуры первого датчика

Процесс индикации выглядит следующим образом: 5 секунд показывается температура первого датчика - 3 секунды все потушено – 5 секунд температура второго датчика – 3 секунды перерыв – и опять сначала. На левом крайнем индикаторе горит один сегмент – первый датчик, два сегмента – второй датчик. В случае обрыва датчика или его отсутствия будет светиться надпись «OFF».

Показания температуры второго датчика

Номер датчика не будет светиться в двух случаях: если температура отрицательная (будет светиться минус) и если температура выше 100 градусов (будет светиться 1хх.х).

На фотографиях датчиков не видно, они временно припаяны со стороны проводников.

Схема 2-х термометров на PIC16F628A и DS18B20

Датчики управляются портами RA4 и RA6 по последовательному интерфейсу 1- Wire (Q1 и Q2). Датчики подсоединяются к плате с помощью трехжильного неэкранированного провода диаметром 0.35 мм.
Резистор R1 и R15 обязательно 4,7 кОм. R4 в пределах 4,7-10к; R7-R14 – 270-360 Ом; R2,R3,R5,R6 – 1- 3к.
Транзисторы любые n-p-n.

Питание 4,5 – 5 вольт, ток < 60мА. (Блок питания я описывал в устройстве Часы на PIC16F628A и FYQ 3641A). Можно использовать его или любой другой.

Скачать прошивку и файл печатной платы LAY вы можете ниже.

Обновления:

  • 28.04.2014. Заменена прошивка TER5 rar. Предыдущая некорректно работала в минусовых температурах. Пауз нет, индикация каждого термометра около 30 сек. 

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
МК PIC 8-бит
PIC16F628A
1 Поиск в магазине ОтронВ блокнот
Q1, Q2 Датчик температуры
DS18B20
2 Поиск в магазине ОтронВ блокнот
VT1-VT4 Биполярный транзистор
КТ3102
4 Поиск в магазине ОтронВ блокнот
C1 Конденсатор0.1 мкФ1 Поиск в магазине ОтронВ блокнот
R1, R15 Резистор
4.7 кОм
2 Поиск в магазине ОтронВ блокнот
R2, R3, R5, R6 Резистор
1.5 кОм
4 Поиск в магазине ОтронВ блокнот
R4 Резистор
10 кОм
1 Поиск в магазине ОтронВ блокнот
R7-R14 Резистор
300 Ом
8 Поиск в магазине ОтронВ блокнот
7-ми сегментый индикаторFYQ 3641A1 Общий катод, U=2 В, I=10 мАПоиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 28.04.2014 0 3
Я собрал 0 2
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 2 чел.

Комментарии (84) | Я собрал (0) | Подписаться

0
Костя #
Собрал Ваше устройство термометр, огромное спасибо! Но вот только сильное мерцание при измерении температуры! Когда горит off - мерцания нет! Питаю от аккумуляторов! Помогите, это исправить?
Ответить
+1

[Автор]
VIG #
Добавил обновленный НЕХ файл. Мерцаний не будет.
Ответить
0
Денис #
Приспособил Ваш девайс к индикаторам ИВ-9. Работает отлично! Только мерцание немножко бесит!
Ответить
+1
Руслан #
Можно сделать чтобы с общим анодом были индикаторы?
Ответить
0

[Автор]
VIG #
Для индикаторов с общим анодом нужно переписывать программу. Руслан, сообщи, насколько для тебя это важно. Если очень нужно, сделаю.
Ответить
0
Ильдар #
С новой прошивкой также мирцает. Что еще предпринять?
Ответить
0

[Автор]
VIG #
У тебя все детали соответствуют схеме?
Ответить
0
Petr #
Собрал схему - не работает. В схеме термометра на pic16f628a использовал вместо индикатора FYQ3641A четыре штуки русских АЛС321А1 (соединил все правильно) и вместо транзисторов КТ3102 транзисторы КТ315. Почему не работает схема?
Ответить
0
Ильдар #
Какие детали схемы нужно проверить на соответсвие в первую очередь?
Ответить
+1

[Автор]
VIG #
LED - индикатор и транзисторы, коэффициент усиления.
Сегодня я закончил доработку программы: полностью убрал паузы между индикацией первого и второго термометров, увеличил время свечения каждого до 30 сек, уменьшил до минимально возможного время "общения" МК с датчиком. Мерцание заметно только "палочек" : "i" и "i i" с близкого расстояния. Если очень тщательно присмотреться. Пришлось увеличить инерционность термометров: одно измерение в сек. Файл называется TER5.3.HEX или в архиве TER5.3. Сегодня же займусь статьёй.
Ответить
+1
Ильдар #
Прошил последней прошивкой, сейчас вроде бы все нормализовалось, мерцаний как таковых нет. Спасибо за оперативность и за хороший девайс. Если не затруднит, можно было бы и прошивку под общий анод, есть в наличии...
Ответить
0
Ильдар #
Появилась новая бяка, когда термометр проходит ноль на минус сразу начинает показывать -16 и десятые. При положительной + температуре все нормально. Думал что датчик, с другим также. Поставил 628 со старой прошивкой, там нормально, если можно так сказать светятся два ноля, когда проходит через ноль, точка и десятые. Должно наверное светится один ноль(градусы)-точка-и десятые. В общем такие вот дела. При плюсовой все окей, а на минусе что-то не то. Проверьте пожалуйста.
Ответить
0

[Автор]
VIG #
Уже почти 2 года прошло, как я написал эту статью. Я уже и программу пишу несколько другим стилем. Пара таких термометров еще работает, но сейчас я делаю на 628 пике 2 термометра со своими индикаторами (статью только выложил). Но это мой крест, и мне его нести.
Ильдар, я не все понял. Ты не мог бы заснять "ненормальности" на видео и мне прислать? Я сейчас пришлю тебе свой адрес.
Под общий анод кроме прошивки немного нужно и схему подправить. Но сначала - убрать глюки.
Ответить
0
Александр #
Спаял Ваш прибор, спасибо большое за конструкцию. Но выскакивает большой "баг" - при отрицательных температурах начинает ошибаться. Не может быть у меня в морозилке холодильника минус 14 при первой прошивке, и минус 25 при второй. Кстати, при прошивке ТЕР5.3 при переходе через "0" на индикаторе выскакивает сразу минус 16. Поправить как-то можно?
Ответить
0

[Автор]
VIG #
Ты уже второй, у кого датчик не выдерживает жестких временных (паспортных) рамок. Программу переделал. Не сегодня - завтра отредактирую.
Ответить
0
Александр #
Спасибо за хлопоты. Перепрошил.
Ответить
0

[Автор]
VIG #
Ответ для Petr. Не хочу повторяться. В своей статье Часы на PIC16F628A и FYQ я очень подробно пошагово описал метод полной проверки схемы.
Удачи!
Ответить
0
Penicillin #
Скажите, нет ли опечатки в названии датчика, точно 18D20, а не 18B20?
Ответить
0

[Автор]
VIG #
Термодатчик DS18B20. Прошу прощения за опечатку на схеме.
Ответить
0
Penicillin #
Собрал, работает неплохо.
Ответить
0
shubin #
Большое спасибо автору! Собрал уже несколько термометров по данной схеме. Всё замечательно работает. Особенно радует точность показаний температуры. Огромная просьба к автору переработать прошивку под использование индикаторов с общим анодом. Заранее спасибо.
Ответить
0
роман #
Собрал термометр, всё хорошо, но есть небольшие недочёты. Начинается измерение почему то со второго датчика, при обрыве первого датчика показывает "OFF" второго датчика, термометр не работает при обрыве второго датчика-показывает "OOFF", во время первого включения кратковременно показывает "85.0". Можно ли это как нибудь исправить?
Ответить
0

[Автор]
VIG #
Да. Можно. Обратись в фирму Dallas. Зачем они записали в датчик эту температуру 85? Пусть запишут 25 или 40. Хоть немного ознакомься с даташитом.
По поводу неправильного отображения датчиков - проверю. У меня часы с таким термометром уже три года работают, не замечал "неправильностей". Подергаю датчики, сообщу.
Ответить
0
elroman #
Расскажите пожалуйста о результатах работы ваших датчиков.
Ответить
0

[Автор]
VIG #
Я сделал три или четыре таких двойных термометров. Но все их раздал. Работают они до сих пор исправно.
У меня работает двойной термометр в "Музыкальных часах..." Нормально.
Ответить
0
elroman #
У меня не работает прибор, если нет датчика №2. У вас также?
Ответить
0

[Автор]
VIG #
Прибор должен работать. Вместо отсутствующего датчика будет писать OFF.
Ответить
0
elroman #
У меня происходит так: когда отключаю датчик подключенный к 15 ноге PIC прибор показывает OFF и переходит на другой канал. Если отключить датчик подключенный к 3 ноге PIC при включенном другом датчике, прибор показывает OFF, но на другой канал не переключается и так стоит бесконечно. Можно протестировать в Proteus, там всё видно.
Ответить
0

[Автор]
VIG #
А зачем?
Ответить
0
elroman #
Я считаю ,что нужно стремиться к совершенству!
Ответить
0

[Автор]
VIG #
Это устройство я сделал более трех лет назад. И оно предназначено для измерения двух температур. Если нужен один термометр, собери один. На ассемблере я не пишу уже больше года, и что-то менять, не проверив в железе, не хочу.
В "Музыкальных часах..." термодатчики на разъёмах. Поэкспериментировал с ними. Все нормально: 1- работает, второй - OFF и наоборот.
Ответить
0
elroman #
Мы друг друга видимо не понимаем. Пусть будет, как есть.
Ответить
0
if_else #
Доброго времени суток! Прочитал весь этот блог и решил сделать следующее.
Очень много радиолюбителей хотели избавиться от выявленных недостатков работы, предложенного автором термометра. Так вышло, что мой преподаватель из радиокружка, в который я ходил 15 лет назад, собрал данную конструкцию. Он обнаружил теже недостатки. После кружечки чая у него в гостях было принято решение помочь ему и написать программу без косяков. Ранее я уже писал программы термометров и хотел выложить свои варианты, но для начала надо было исправить этот.
Пожеланиями преподавателя было устранить мерцание индикаторов и сделать обновление температуры каждые 5 секунд.
Так вот, народ, кто хочет новую прошивку прошу скачивать. Кому нужно изменить программу для индикатора с общим анодом - можно сделать и это, обращаться через этот сайт (пишите в ЛС).
От себя добавлю, что придерживался схемы автора, но сильно хотелось её изменить:
1) изменить порядок включения сегментов a-h на прямой или обратный (видимо автор ввел свой порядок для уменьшения числа перемычек на плате);
2) изменить порядок включения общих катодов (думаю причина та же).
Т.о. программа переписана с "0", схема та же (прилагается к архиву).
P.S. Критика приветствуется.
Прикрепленный файл: Для сайта Паяльник.zip
Ответить
0
Александр #
Дорогой if_tlse! Если Вас не затруднит, опубликуйте прошивку в HEX для индикаторов с общим анодом. Заранее благодарен.
Ответить
0
if_else #
Здравствуй, Александр!
Прошивку изменить нет сложности, но мне нужно знать как будет включаться индикатор с ОА:
1) напрямую к выводам МК без транзисторов;
2) с транзисторами, но уже прямой проводимости (p-n-p), с подключёнными к "+" эммиттерами.
Ответить
0
if_else #
Изменённая программа для индикатора с ОА. Схема прилагается.
Прикрепленный файл: Termometr_PIC16F628a__v 2.2 (for NN)__OA_forum.zip
Ответить
+1
elroman #
Спасибо за понимание и труд. Работает так как нужно!
Ответить
0
if_else #
Если у Вас есть возможность редактировать программу и записывать её в микроконтроллер, то могу помочь изменить в ней какие-нибудь параметры и настройки.
Ответить
+1
victor #
Спасибо if-else за прошивку, после двух лет термометр стал показывать набор цифр, перепрошивка не помогала, проверка датчиков и платы ничего не дала. Только с новой прошивкой заработало как надо.
Ответить
0
Сергей 70 #
Пробую прошивку от if_else. Почему то датчик подключенный к входу 3 завышает показания на 2-3 градуса. Неужели нужно вводить программную корректировку для него? Как вы думаете if_else
Ответить
0
if_else #
Высылаю в качестве ответа видео. Оно снято на телефон, но надеюсь будет понятным.
http://www.youtube.com/watch?v=c0ssM86n3WM
Отредактирован 05.12.2015 16:23
Ответить
0
Сергей 70 #
Спасибо if_else за исчерпывающий ответ.
Возможно только такое в моей конструкции происходит:
1) Если припаять оба датчика к плате контроллера проводами одинаковой длины (в моём случае примерно 5 см), то они оба завышают показания температуры примерно на 2 градуса,
2) Если припаять оба датчика к плате контроллера проводами одинаковой длины (в моём случае примерно от 50см и более), то они оба показывают правильное значение температуры,
3) Если один датчик оставляем припаянным к плате контроллера проводами 5 см, а второй припаянный проводами длинной 50см и более, то первый завышает показания температуры, второй показывает правильно.
Но возможно это виновата топология моей платы.
Спасибо вам if_else
Ответить
0
if_else #
Сергей, очень странное наблюдение, но от длины проводов зависеть не должно. Это цифровые датчики. Вам аналоговый элемент находится внутри на кристалле датчика и соединён с внутренним АЦП очень коротники проводниками.
Я эту прошивку как только не проверял, и она работает. Мне сегодня сообщили, что еще 3 таких термометра с моей прошивкой работают исправно не первый месяц.
Думаю, надо проверить монтаж, питание схемы, номиналы резисторов и сами датчики.
Ответить
0
if_else #
Данную схему и программу к ней проверил в среде Proteus 8 Professional. Значения температуры заданные датчикам в схеме симулятора совпадают с отображаемыми
Если кто сомневается в программе для МК проверяйте её в Proteus или другом симуляторе. Вас никто не ограничивает.

Пару фоток прилагаю.
Ответить
0
if_else #
Готовые программы для индикаторов с ОК и ОА, а также схемы в прикреплённом архиве ниже.
Прикрепленный файл: Thermometers.zip
Ответить
0
Сергей 70 #
И действительно if_else вы правы на счёт датчиков. Интересный момент, прижимаешь датчик корпусом к его питающим проводам начинает завышать температуру на 2 градуса, или припаиваешь его непосредственно к входам контроллера тоже завышает, вот только при длине питающего кабеля от 50см и до 5м(дальше не проверял) всё отлично работает. Спасибо вам if_else за рабочие программы, можно ли ещё где то ознакомиться с вашими проектами...
Ответить
0
if_else #
Сергей 70, пока только этот опубликовал. Так получилось, что сделал похожий проект, а затем понадобилось подлатать этот, вот и подогнал свой проект под этот.
Что касается термометров, то у меня есть свой, но с одним датчиком и на дисковых батарейках. Очень низкое потребление тока в режиме "сна" МК позволяет батарейкам долго служить, а индикация разряда батареек позволяет контролировать момент их замены.
Отредактирован 11.12.2015 07:05
Прикрепленный файл: IMG_7504.zip
Ответить
0
if_else #
Ещё одно фото.
Прикрепленный файл: IMG_7501.zip
Ответить
0
Сергей 70 #
Да, занимательная малогабаритная конструкция.
Ответить
0
Demi #
А где можно скачать проект Вашей версии термометра. Мне как раз нужен один датчик и работа от батарей.
Ответить
0
if_else #
Проект в архиве.
Прикрепленный файл: Termometr_PIC18F2520_SLEEP_box.zip
Ответить
0
Demi #
Большое спасибо. Это то, что мне нужно.
Ответить
0
Demi #
Собрал, включил и не могу понять, почему на табло Error. После сброса опять Error. Помогите разобраться. Где я ошибся.
Ответить
0
if_else #
Проверьте схемотехнику, а также сами датчики.
По опыту форумчан выяснилось, что могут быть проблемы с не оригинальными датчиками, хотя я применял всякие разные и все работало.
Порой ошибка кроется в мелочах - проверьте номинал подтягивающего резистора для датчика температуры. Если не ошибаюсь, то чем длиннее шина данных, тем меньше должен быть номинал этого резистора (следует обратиться к справочнику (даташиту)).
Ответить
0
Константин #
Можно ли к этому проекту подключить 4-х дюймовые индикаторы? Соответственно с питанием от сети.
Ответить
0
if_else #
Все можно, но осторожно.
Необходимо учитывать спецификации индикаторов.
Они у Вас светодиодные, газоразрядные .... ?
Ответить
0
Константин #
У меня есть 4-х дюймовые и 2.3 дюймовые семисегментные led-индикаторы с общим анодом. Хочется их вставить в этот проект. Можно сделать прошивку, чьобы аноды подключить через ключи через на транзисторах а сегменты подключить через ULN2803.
Ответить
0
Константин #
Здавствуте. У меня просьба к if_else. Можете ли Вы в прошивке для индикаторов с общим анодом из Вашего проекта сигналы управления сегментами изменить на противоположные. Чтобы можно было подключить ключи на транзисторах. Сам я в прогаммировании полный ноль.
Ответить
0
if_else #
Изучил Вашу микросхему ULN2803. Все верно, надо инвертировать сигналы управления. Попробую это сделать в ближайшее время.
Ваша плата уже готова?
Отредактирован 25.01.2022 14:30
Ответить
0
Константин #
Добрый день. Плату ещё не разводил. Поскольку на Ваш проект наткнулся вот только на днях. Схема заинтересовала из-за того что есть несколько таких микроконтроллеров.
Ответить
0
if_else #
Держите прошивку.
Прикрепленный файл: Termometr_PIC16F628a_OA_forum_for_Konstantin.hex
Ответить
0
Константин #
Всем доброго дня. if_else извиняюсь за не правильную формулировку вопроса. У меня была просьба изменить прошивку для термометра на PIC18F2520 из Вашего проекта. Сделайте пожалуйста если это Вас не затруднит.
Ответить
0
if_else #
У PIC18F2520 большее чем у PIC16F628 выводов.
Сначала начертите схему, а там постараюсь пересобрать проект под PIC18F2520.
P.S. если нет весомых причин, то я использовал бы PIC16F628 как наиболее простенький и достаточный для данного проекта
Ответить
0
Константин #
Да это понятно что у PIC16F628 поменьше выводов. А поскольку PIC18F2520 у меня имеются и пылятся без дела моя хотелка нацелена именно на этот камень. И если я не шибаюсь то в Вашей прошивке проинвертировав сигналы на управление сегментами, а так же усливив порты микросхемой ULN2803. А уравление анодами усилить транзисторными ключами или даже микросхемой UDN2981, Ваш проект можно использывать без переназначения портов у контроллера.
Ответить
0
Константин #
Вот к Вашей схеме дорисовал то что хочу приколхозить.
Я посмотрел на Ваши печатки, они разведены под 4-х разрядные индикаторы, если я не ошибаюсь?
Прикрепленный файл: Схема.spl7
Ответить
0
if_else #
Да, согласно схемы должно быть 4 разряда.
Ответить
0
Константин #
Всем доброго дня. Для if_else прикрепил файлы с тем что хочу собрать. А то что у меня желание использывать PIC18F2520, так просто имеется несколько штук. А PIC16F628 у меня нет свободных.
Прикрепленный файл: Термометр на PLC18F2520.zip
Ответить
0
if_else #
Датчик температуры нужен один?
Ответить
0
Константин #
Добрый день!
Если не затруднит, то можно и для двух датчиков.
Ответить
0
Дмитрий #
Вопрос к автору данной схемы: в исходная схема построена на PIC16F628. Однако в одном из последних вариантов схемы указано PIC16F84(628). Отсюда вопрос: программа для этих контроллеров является взаимозаменяемой или это опечатка в схеме?
Ответить
0
if_else #
Программа только для 628-го. Изначально схема создавалась для некой отладочной платы для двух контроллеров, отсюда осталась надпись 84.
Ответить
0
Григорий #
У меня почему то не видят датчики. Светятся off и мигает вторая палочка, а первая просто горит
Ответить
0
Григорий #
Ds18b20 исправны. Подтяжка есть. В протеусе работают. Индикатор с оа. Прошивал тритоном и jonis prog
Ответить
0

[Автор]
VIG #
Скорее всего ошибки в монтаже.
Ответить
0
GrihaZVL #
Все проверил. Индикаторы правильно работают. Но датчики не видит. Индикаторы использовал от часов кит набора с общим анодом. Там же и транзисторы были. Резисторы базовые 10к, катодные 330 ом, а транзисторы 8550. Горит Off и первая палка, вторая мигает. По-сути причина только с 3 ножкой и 15. Резисторы подтяжки пробовал изменять.
Отредактирован 24.04.2021 19:38
Прикрепленный файл: 203859110093986831.jpg
Ответить
0
if_else #
Эта картинка того индикатора, который Вы использовали в данной схеме? https://cxem.net/ckfinder/userfiles/comments/82468_203859110093986831.jpg
Индикатор в этих часах состоит из 4 отдельных модулей, при этом те, что отображают минуты, перевернуты.
Ответить
0
GrihaZVL #
Заработал, спасибо за помощь. Дело было скорей всего в ds18b20. Если у вас не видит датчик, вот измененная программа.
Прикрепленный файл: Termometr.HEX
Ответить
0
Константин #
У меня вопрос по термометру на pic18f2520. Можно ли этот термометр согласовать с 4-х дюймовыми индикаторами? Соответственно с применением сетевого блока питания.
Ответить
0
alexwo39 #
Уважаемый автор а можно сделать прошивку под PIC16F88 ОА и ОК? Чтобы датчик 1 выводил индикацию на 3 секунды, а датчик 2 на 20 секунд. Если возможности с 88 нет, то оставить 628.
Ответить
0

[Автор]
VIG #
Этой конструкции более 10 лет. Я тогда писал на Ассемблере, но уже лет 7 пишу на МикроСи.
Ответить
0
Василий #
Возможно ли подключение датчиков температуры по паразитному питанию во всех проектах, чтобы не тянуть на улицу 3 провода?
Ответить
0

[Автор]
VIG #
"во всех проектах" нельзя.
Ответить
0
Vadovads #
Приветствую всех радиолюбителей!
16 вывод микроконтроллера свободен, можно ли сделать его для управления транзистором, для включения реле при достижении 95 градусов и остывания до 85 градусов, хотелось бы собрать для контроля температуры двигателя автомобиля и управления вентилятором охлаждения .
Возможна ли такая доработка? думаю многим пригодилась бы.
Ответить
0

[Автор]
VIG #
Прошу прощения за долгий ответ: лето - дачный сезон, а зима - для электроники. Этот термометр для дома (квартиры),а для авто посмотри на этом же сайте Термометры для авто.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Радиореле 220В
Радиореле 220В
Металлоискатель MD3010II Конструктор - темброблок на LM1036
вверх