Запрошуємо, Гість
Ім'я користувача: Пароль: Запам’ятати мене
  • Сторінка:
  • 1
  • 2

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

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

  • Kvint_dp
  • Kvint_dp аватар
  • Оффлайн
  • Harness is online
  • Дописи: 25
  • Подякували: 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
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect Author
Есть похожее на ATMEGA8. Могу перевести на 2313. Но у меня проект чуть шире - есть еще кнопки, меню...
Увійдіть до облікового запису, щоб писати повідомлення.

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

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

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

  • Soir
  • Soir аватар
  • онлайн
  • Moderator
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect Author
Хорошо, но уже завтра выложу. Сделаю хоть какое-то описание.
Увійдіть до облікового запису, щоб писати повідомлення.

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

  • Kvint_dp
  • Kvint_dp аватар
  • Оффлайн
  • Harness is online
  • Дописи: 25
  • Подякували: 12
  • sxem.org Sponsor 2020
Спасибо!!
Увійдіть до облікового запису, щоб писати повідомлення.

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

  • Soir
  • Soir аватар
  • онлайн
  • Moderator
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect Author
Урезал свой проект под Ваше описание - так оказалось проще, чем расписывать что и зачем.

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

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

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

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

  • Soir
  • Soir аватар
  • онлайн
  • Moderator
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect Author
Kvint_dp пише:
Соберу в выходные и отпишусь.
Я уже проверил его на макете.

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

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

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

  • Kvint_dp
  • Kvint_dp аватар
  • Оффлайн
  • Harness is online
  • Дописи: 25
  • Подякували: 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
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect Author
Kvint_dp пише:
1) выводить значение регистров TH и TL в шестнадцатеричном формате для удобства пользования совместно с программой для изменения значений этих регистров.
В моем варианте этот прибор мог сам устанавливать эти значения. Тогда в десятичном формате все прозрачно и понятно.

Изменения сделаю, но уже наверно завтра.
Увійдіть до облікового запису, щоб писати повідомлення.
Користувачі які сказали Дякую: Kvint_dp

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

  • Kvint_dp
  • Kvint_dp аватар
  • Оффлайн
  • Harness is online
  • Дописи: 25
  • Подякували: 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
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect Author
Нет, это не закрытая информация, выложу. Но такой вариант предусматривает наличие кнопок управления. В моем варианте их 4.
Увійдіть до облікового запису, щоб писати повідомлення.

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

  • Soir
  • Soir аватар
  • онлайн
  • Moderator
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect Author
Прошивку и проект обновил в сообщении №6.
Меню, надеюсь, интуитивно понятное. Но спрашивайте, если есть неясные моменты.

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

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

  • Kvint_dp
  • Kvint_dp аватар
  • Оффлайн
  • Harness is online
  • Дописи: 25
  • Подякували: 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
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect Author
Сделал hex-формат, но так и не понял зачем. Использовать эти регистры для нумерации датчиков?

Что касается дополнительных символов, то если они нужны - разрисуйте по пикселям, как они должны выглядеть. В простой инверсии края символов сливаются с фоном дисплея и становятся трудночитаемыми.
Останнє редагування: 22 серп. 2020 14:26 від Soir.
Увійдіть до облікового запису, щоб писати повідомлення.
Користувачі які сказали Дякую: Kvint_dp

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

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

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

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



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

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

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

  • Soir
  • Soir аватар
  • онлайн
  • Moderator
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect 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
  • Дописи: 25
  • Подякували: 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
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect Author
А резисторы установлены в цепях кнопок?
Увійдіть до облікового запису, щоб писати повідомлення.

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

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

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

  • Soir
  • Soir аватар
  • онлайн
  • Moderator
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect Author
Вы невнимательно смотрите на проект. В цепях кнопок резисторы обязательны - без них контроллер обязан умереть. А в цепях индикатора - да, только для симуляции - тут уже конфликт с Proteus.
Увійдіть до облікового запису, щоб писати повідомлення.
Користувачі які сказали Дякую: Kvint_dp

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

  • Kvint_dp
  • Kvint_dp аватар
  • Оффлайн
  • Harness is online
  • Дописи: 25
  • Подякували: 12
  • sxem.org Sponsor 2020
Понял свою ошибку!

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

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

  • Soir
  • Soir аватар
  • онлайн
  • Moderator
  • Дописи: 13644
  • Подякували: 5175
  • sxem.org 2019,2021 Respect 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
  • Дописи: 25
  • Подякували: 12
  • sxem.org Sponsor 2020
Ошибку свою исправил - резисторы добавил, обновил прошивку.
Всё работает отлично!
Нашёл у себя оригинальный DS18B20 (покупался в Вороне), так устройство показывает подключение при "паразитном" питании правильно, отображает "2". Периодически датчик сбрасывается (отображается температура 85С), видно не хватает питания по линии данных, особенно при 12 битном разрешении. При 9..10 битном сбросы датчика происходят реже.

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

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

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

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