Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2

ТЕМА: прибор для считывание полной информации с DS18B20

прибор для считывание полной информации с DS18B20 19 авг 2020 18:32 #1

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
Добрый день, уважаемые участники форума. Для контроля работы и управлением температуры тёплых полов (при помощи МК и термоэлектрических приводов на коллекторе) на Али было куплено 20шт. DS18B20. Они будут смонтированы в стяжку перед заливкой. Для исключения путаницы где какой датчик установлен возникла необходимость в автономном приборе (тестере), который сможет считывать всю информацию с подключенного датчика температуры, а именно:
- уникальный серийный номер;
- значение регистра TH;
- значение регистра TL;
- значение запрограммированного разрешения (09, 10, 11, 12 bit);
- вид подключения питания (2-х проводное "паразитное" или 3-х проводное);
- текущую температуру.

И позволит оперативно, в процессе ремонта, фиксировать место установки датчиков и их идентифицировать.
Сразу оговорюсь, что один датчик подключен на один провод. Это упрощает работу с ним, и повышает надежность системы.
Тестер должен поддерживать возможность замены датчика температуры без отключения питания, т.е. "на ходу"
Схема устройства (как вариант, делал с точки оптимальности монтажа на макетной панели):



Вложенный файл:

Имя файла: схема.rar
Размер файла:4 KB




Вариант изображения информации на дисплее:







примеры показа информации на ПК при помощи различных программ:









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

прибор для считывание полной информации с DS18B20 19 авг 2020 18:44 #2

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Есть похожее на ATMEGA8. Могу перевести на 2313. Но у меня проект чуть шире - есть еще кнопки, меню...
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 19 авг 2020 19:55 #3

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
Можно и на AMEGA8 - мне не принципиально, лиш бы функционал был аналогичный. На ATtiny предложил, т. к. первый попался под руку)
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 19 авг 2020 20:25 #4

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Хорошо, но уже завтра выложу. Сделаю хоть какое-то описание.
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 19 авг 2020 20:27 #5

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
Спасибо!!
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 20 авг 2020 10:38 #6

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Урезал свой проект под Ваше описание - так оказалось проще, чем расписывать что и зачем.

Есть один нюанс - определение питания.
Во-первых, определятся питание уже постфактум. То есть, если разработчик подключил по двух-проводной линии, то датчик и ответит - паразитное питание. В общем, смысла считывать этот параметр нет, так как это разработчик сам определяет и сам знает, как он подключил датчик.
Второе - из моих датчиков половина работает по двух-проводной линии, половина нет. Из тех, что только по трех-проводной, половина выдает информацию, что подключение двух-проводное, половина - трех-проводное. Это от партии к партии, отслеживается по маркировке. Китай он такой...
Вложения:
Последнее редактирование: 23 авг 2020 07:34 от Soir. Причина: Обновление прошивки.
Администратор запретил публиковать записи гостям.
Спасибо сказали: Kvint_dp

прибор для считывание полной информации с DS18B20 20 авг 2020 11:15 #7

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
Soir, спасибо за проект!
Соберу в выходные и отпишусь.
По поводу питания - путём вывода информации о типе подключения на дисплей хотел сделать косвенную проверку на обрыв линии +5В, идущей к датчику.
Кстати, на одном из фото, которое я выложил в первом сообщении, видно, что все 20 датчиков, купленных на Али, правильно определили тип подключения.
Но эта опция не обязательна.
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 20 авг 2020 12:24 #8

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Kvint_dp пишет:
Соберу в выходные и отпишусь.
Я уже проверил его на макете.

Kvint_dp пишет:
По поводу питания - путём вывода информации о типе подключения на дисплей хотел сделать косвенную проверку на обрыв линии +5В, идущей к датчику.
Датчики, которые работают по двух-проводной линии, работают и при отключенном выводе питания. При этом подключение определятся когда как как: то двух-, то трех-.

Kvint_dp пишет:
все 20 датчиков, купленных на Али, правильно определили тип подключения.
У меня много разных уже закупок было. Но вот приобретенные за последние года два, почему-то пошли "не такие". Последние на Ali - только трех-. Где-то брал по Украине - тоже трех-. И только когда специально выбрал те, у которых прямо указано в характеристиках (кажется на Вороне), что работают с паразитным питанием, работают по двух-проводной линии.
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 21 авг 2020 15:09 #9

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
Выходных не дождался, и собрал устройство.
Всё работает, как было задумано.
Soir, спасибо за оперативную помощь!!

Есть пару предложений (1 существенное, 2,3 чисто эстетические..):
1) выводить значение регистров TH и TL в шестнадцатеричном формате для удобства пользования совместно с программой для изменения значений этих регистров. Сейчас выводится в десятичном (64 вместо 48h). Максимальное значения регистров, если учитывать знак (7-й bit), равно FFh, поэтому хватит 2-х разрядов, и нет необходимости в 3-х, как показывает сейчас;
2) выводить нули при выводе значений регистров и разрешения (09 вместо 9, и т.п.);
3) вместо чёрных квадратов-разделителей, как планировалось изначально, и, если позволит индикатор, выводить светлые символы "С" возле температуры и "h" после значений на тёмном фоне

:
если выводить такие символы сложно, то оставить чёрные квадраты, как сейчас.

Свои функции устройство выполняет!
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 21 авг 2020 15:58 #10

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Kvint_dp пишет:
1) выводить значение регистров TH и TL в шестнадцатеричном формате для удобства пользования совместно с программой для изменения значений этих регистров.
В моем варианте этот прибор мог сам устанавливать эти значения. Тогда в десятичном формате все прозрачно и понятно.

Изменения сделаю, но уже наверно завтра.
Администратор запретил публиковать записи гостям.
Спасибо сказали: Kvint_dp

прибор для считывание полной информации с DS18B20 21 авг 2020 16:34 #11

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
Soir пишет:
В моем варианте этот прибор мог сам устанавливать эти значения. Тогда в десятичном формате все прозрачно и понятно.

Интересно на него было бы взглянуть "хоть одним глазком")).
Я так понимаю, что Ваш прибор позволяет автономно и считывать информацию, и программировать устройства 1-Wire.
Если это не является закрытой информацией, то может выложите его модель в Протеусе без описания, чтобы не тратили своё время на его написание, а я сам попробую разобраться, благо Протеус это позволяет.

Когда у Вас будет свободное время, это не к спеху. Прибором уже могу пользоваться, основную свою функцию он выполняет

Сообщения объединил. Нарушение Правил форума, раздел 5, п.8
Soir
Последнее редактирование: 21 авг 2020 21:33 от Soir. Причина: Нарушение Правил форума.
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 21 авг 2020 21:35 #12

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Нет, это не закрытая информация, выложу. Но такой вариант предусматривает наличие кнопок управления. В моем варианте их 4.
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 22 авг 2020 09:51 #13

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Прошивку и проект обновил в сообщении №6.
Меню, надеюсь, интуитивно понятное. Но спрашивайте, если есть неясные моменты.

N.B.
Половина из моих неполноценных датчиков не сохраняют настройки после отключения питания. Похоже, что у них EEPROM отсутствует.
Администратор запретил публиковать записи гостям.
Спасибо сказали: Kvint_dp

прибор для считывание полной информации с DS18B20 22 авг 2020 10:52 #14

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
Soir, спасибо!
Кнопки в железе ещё не добавил, посмотрел в Протеусе - меню не сложное.
И понял, почему Вы выводите значение регистров в десятичном виде со знаком температуры. Это проще воспринимается, когда регистры программируются и будут использоваться по прямому предназначению для контроля выхода температуры за установленные границы.
Но значения регистров TH и TL я буду использовать для упрощения оперативной замены и идентификации на 1-м проводе нескольких датчиков.
Такую систему подсмотрел и опробовал на используемых у нас на автомобилях GPS трекерах «REGSYS» BI 864 TREK. Там используется такой вариант адресации датчиков на одной шине:



Только поэтому я Вас прошу, по возможности, изменить вывод значений регистров, а также при программировании, с десятичной со знаком на шестнадцатеричные значения от 00h до FFh.
Хотя в этом примере и указаны десятичные числа, мне проще будет в дальнейшем использовать шестнадцатеричные.

Кстати, Вы оказались правы по поводу датчиков с Али. У меня они не работают при паразитном питании, только при 3-х проводном подключении
Последнее редактирование: 22 авг 2020 10:57 от Kvint_dp. Причина: добавил текст
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 22 авг 2020 14:24 #15

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Сделал hex-формат, но так и не понял зачем. Использовать эти регистры для нумерации датчиков?

Что касается дополнительных символов, то если они нужны - разрисуйте по пикселям, как они должны выглядеть. В простой инверсии края символов сливаются с фоном дисплея и становятся трудночитаемыми.
Последнее редактирование: 22 авг 2020 14:26 от Soir.
Администратор запретил публиковать записи гостям.
Спасибо сказали: Kvint_dp

прибор для считывание полной информации с DS18B20 22 авг 2020 21:48 #16

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
Soir пишет:
Сделал hex-формат, но так и не понял зачем. Использовать эти регистры для нумерации датчиков?

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

Думаю, что ничего особо придумывать не надо. Возле температуры поставить символ градуса, а вместо черных квадратов использовать символ "*":



Добавил кнопки, и в процессе работы длительное нажатие влияет (это и понятно) на выводимые символы. Были случаи, когда записывались неверные данные в регистры. Как вариант, может это являлось причиной, почему у Вас не сохранялись данные в EEPROM.

У МК много свободных выводов, и, чтобы не было конфликтов, стоит вынести кнопки отдельно от шины данных индикатора.
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 22 авг 2020 22:01 #17

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Kvint_dp пишет:
в процессе работы длительное нажатие влияет (это и понятно) на выводимые символы.
Мне непонятно, такого быть не должно. Опишите подробнее.

Kvint_dp пишет:
Были случаи, когда записывались неверные данные в регистры. Как вариант, может это являлось причиной, почему у Вас не сохранялись данные в EEPROM.
Нет. У меня есть четкая закономерность по маркировке датчиков.

Kvint_dp пишет:
У МК много свободных выводов, и, чтобы не было конфликтов, стоит вынести кнопки отдельно от шины данных индикатора.
Никаких конфликтов быть не должно. Сбои могут быть из-за длины соединительных проводов (монтажная емкость), но ее можно компенсировать в программе. Также бывают и относительно медленные индикаторы (тот же Китай), но здесь тоже можно программу подкорректировать.
Такое подключение кнопок мне сильно упрощает жизнь в условиях макета - индикатор с кнопками на все случаи жизни. В реальных устройствах также - кнопки как правило, возле дисплея и упрощается подключение - меньше проводов. Плюс получается какая-то универсальность... В общем, я почти всегда так делаю, даже если есть свободные выводы.
Последнее редактирование: 22 авг 2020 22:02 от Soir.
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 22 авг 2020 22:12 #18

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
снял видео (22сек) работы, где виден индикатор в процессе нажатия кнопок:

drive.google.com/file/d/1QOqm5aI3dd7b1h0...Klw/view?usp=sharing

Если влияет длина соединительных проводов, как Вы говорите, то в моём случае это возможно, т.к. устройство собиралось "на скорую руку".
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 22 авг 2020 22:16 #19

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
А резисторы установлены в цепях кнопок?
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 22 авг 2020 22:17 #20

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
нет - в Протеусе написано, что они только для симуляции, поэтому я их и не ставил
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 22 авг 2020 22:30 #21

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Вы невнимательно смотрите на проект. В цепях кнопок резисторы обязательны - без них контроллер обязан умереть. А в цепях индикатора - да, только для симуляции - тут уже конфликт с Proteus.
Администратор запретил публиковать записи гостям.
Спасибо сказали: Kvint_dp

прибор для считывание полной информации с DS18B20 22 авг 2020 22:34 #22

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
Понял свою ошибку!

Спасибо, что подсказали, завтра добавлю резисторы 4,7к в цепи кнопок
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 23 авг 2020 07:24 #23

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Особых требований к номиналам нет - диапазон от 1кОм до 4,7кОм. Если кнопки срабатывают неуверенно - номинал в меньшую сторону. В принципе, должны и до 10кОм работать.

P.S.
Прошивку обновил - косметика.
Последнее редактирование: 23 авг 2020 07:34 от Soir.
Администратор запретил публиковать записи гостям.
Спасибо сказали: Kvint_dp

прибор для считывание полной информации с DS18B20 23 авг 2020 19:20 #24

  • Kvint_dp
  • Kvint_dp аватар
  • Не в сети
  • Harness is online
  • Сообщений: 26
  • Спасибо получено: 12
  • sxem.org Sponsor 2020
Ошибку свою исправил - резисторы добавил, обновил прошивку.
Всё работает отлично!
Нашёл у себя оригинальный DS18B20 (покупался в Вороне), так устройство показывает подключение при "паразитном" питании правильно, отображает "2". Периодически датчик сбрасывается (отображается температура 85С), видно не хватает питания по линии данных, особенно при 12 битном разрешении. При 9..10 битном сбросы датчика происходят реже.

Soir, ещё раз большое Вам спасибо за оперативную помощь в реализации проекта!

Теперь я готов к монтажу термодатчиков в тёплый пол и заливке стяжки))
Администратор запретил публиковать записи гостям.

прибор для считывание полной информации с DS18B20 23 авг 2020 20:58 #25

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 11504
  • Спасибо получено: 4137
  • Respect sxem.org Sponsor 2019 Author
Kvint_dp пишет:
Периодически датчик сбрасывается (отображается температура 85С)
Могут быть и другие причины. Программа постоянно (1 раз в секунду) опрашивает датчик - и код, и температуру, и конфигурацию... может где-то нужно сделать паузу. Но для этого нужно делать эксперименты, а у себя я такого не наблюдал.
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
Модераторы: wolf2000, Vakula, Айнцвайдрайченко, Soir