Очередной термометр на DS18B20

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Очередной термометр на DS18B20

Сообщение GoldenAndy »

pcb432, если надо - можно добавить кнопку и режим сна. Тогда потребление будет определяться прожорливостью дисплея в спящем режиме (+ на нем стоит свой LDO на 3.3 вольта) и холостым потреблением DS18B20.
-----
Что касается термисторов - можно и на них. Но стоит ли оно выделки?
Придется задействовать АЦП. Для АЦП нужен ИОН, а он у меги хреновый (и это мягко сказано), т.е. нужна еще и калибровка. Либо внешний нормальный ИОН. Соответственно, экономии на этом не будет. Ну и, кроме того, DS18B20 на том же Али стоит $1.43 за 5 шт. Т.е. 29 центов за штуку.
Так что мой выбор - DS. Их калибровать не надо, придумывать поправочные таблицы тоже.
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Очередной термометр на DS18B20

Сообщение Dimon456 »

Вполне устраивает
Изображение
стоимость < 4$
ожидаемое время работы на одном комплекте элементов питания ~ 1 год
не требует зарядки
режим работы постоянный
Самсусамыч

Re: Очередной термометр на DS18B20

Сообщение Самсусамыч »

[uquote="goldenandy",url="/forum/viewtopic.php?p=3786005#p3786005"]Так что мой выбор - DS. Их калибровать не надо, придумывать поправочные таблицы тоже.[/uquote]
Я тоже за DS, но справедливости ради ему тоже нужна таблица особенно в минусовом диапазоне… так как заявленная погрешность 0,5 от минус 10 не соответствует действительности. :)
Mr.Pupkin
Мучитель микросхем
Сообщения: 432
Зарегистрирован: Ср янв 02, 2013 20:56:57
Откуда: близ Казани

Re: Очередной термометр на DS18B20

Сообщение Mr.Pupkin »

Уважаемый GoldenAndy! А опрос датчиков через какое время происходит?
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Очередной термометр на DS18B20

Сообщение GoldenAndy »

Mr.Pupkin, каждые 800 мс
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
Аватара пользователя
musor
Друг Кота
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Re: Очередной термометр на DS18B20

Сообщение musor »

впром бытовых термометрах опрос идет раз в 5-40сек...
настеный китаец -ЧАСЫ КАРТИНА ССЕТЕВЫМ ПИТАНИЕм опрашивает термаметр раз 30сек а зачем чаше ???среда инерционая можно ваше раз в 5минут но тогда надо кнопку принидителного стата замера предусмотреть на случай переноса на другое место
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Аватара пользователя
Alex_641
Поставщик валерьянки для Кота
Сообщения: 2314
Зарегистрирован: Вт янв 26, 2021 22:33:21

Re: Очередной термометр на DS18B20

Сообщение Alex_641 »

[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4293888#p4293888"]Mr.Pupkin, каждые 800 мс[/uquote]
При небольшой корректировке библиотеки делал раз в 200 мс, работало.
Не спрашивай по ком звонит колокол, он звонит по тебе !
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Очередной термометр на DS18B20

Сообщение veso74 »

Лучше всего ждать необходимое время не менее, согласно разрешении: из документации, стр. 9.
Thermometer Resolution Configuration Table 3
Thermometer Resolution | Max Conversion Time
9 bit - 93.75 ms (tconv/8)
10 bit - 87.5 ms (tconv/4)
11 bit - 375 ms (tconv/2)
12 bit - 750 ms (tconv)
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Очередной термометр на DS18B20

Сообщение OKF »

Комнатную температуру измеряю раз в минуту. Зачем спешить. Но время преобразования 750 мс.
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Очередной термометр на DS18B20

Сообщение GoldenAndy »

musor, OKF, Это не тот термометр, который комнату меряет. Заказчик просил оперативное измерение.
Включил, померял температуру где надо, и выключил. Как раз тут удобна динамика.
Вроде бы в теме говорилось об этом вначале.
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
Аватара пользователя
Alex_641
Поставщик валерьянки для Кота
Сообщения: 2314
Зарегистрирован: Вт янв 26, 2021 22:33:21

Re: Очередной термометр на DS18B20

Сообщение Alex_641 »

А вот если МК осуществляет динамическую индикацию, к примеру 5 сек время , и 5 сек температуру. Переход с опроса RTC не занимает видимого времени, а переход на температуру 0,8 сек . В течении 0,8 сек МК ждёт , и ничего не выводит.
Не спрашивай по ком звонит колокол, он звонит по тебе !
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Очередной термометр на DS18B20

Сообщение Eddy_Em »

Alex_641, что значит "ждет и ничего не выводит"? Секунды за полторы (чтобы с запасом) до того, как нужно температуру отобразить, отсылаем измерение, измеряем и, как раз, как подойдет время, отображаем свежую.
Только нет смысла измерять температуру воздуха чаще раза в минуту-две-пять. Это ж вам не быстрые процессы. Вот в термостате - да, нужно несколько раз в секунду измерять температуру хотя бы в десятке разных мест, чтобы гарантировать стабильность с точностью в сотые К. А DS18 - это ж показометр, у него точность хуже ±0.5℃. На такую величину вряд ли за несколько секунд в комнате температура сможет измениться!
А для точного измерения есть более приличные датчики: начиная от полупроводниковых по 500..1500 рублей за штучку (но эти лучше ±0.05℃ не дадут, к сожалению) и заканчивая платиновыми термопарами (здесь уж сотка запросто), которые от 1500р за штучку (+ к ним нужно достаточно сложное устройство опроса сделать).

P.S. Кстати, на приличных МК, в которых есть DMA, работа с 1-wire идет практически не напрягая МК. И не нужно аж на сотню миллисекунд выключать прерывания и все нафиг блокировать.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
Alex_641
Поставщик валерьянки для Кота
Сообщения: 2314
Зарегистрирован: Вт янв 26, 2021 22:33:21

Re: Очередной термометр на DS18B20

Сообщение Alex_641 »

Eddy_Em писал(а):что значит "ждет и ничего не выводит"?
Библиотека в CAVR не подразумевает других действий , кроме ожидания.
Не спрашивай по ком звонит колокол, он звонит по тебе !
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Очередной термометр на DS18B20

Сообщение Eddy_Em »

Alex_641, т.е. свое написать - западло что ли? Даже на 8-битке без DMA можно организовать работу с 1-wire, минимально напрягающую камень. Нет DMA - ОК, пользуйтесь прерываниями. Реализовать можно либо на любом таймере с режимом захвата, либо на UART/I2C и т.п.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

Re: Очередной термометр на DS18B20

Сообщение Just_Fluffy »

Ну для 8-битных АВР задержки при чтении/записи одного бита можно реализовать тупо на delay_us, запрещая на этот период прерывания.
т.е. отправка/чтение байта - это простенький цикл. В котором действительно будут ожидания по 50-60 мкс.
Чтение 8 байт из термометра - ну тут уже от задачи зависит. Можно в цикле читать.
А можно сделать машину состояний и дергать ее каждую миллисекунду. И она будет в каждый момент времени делать что то одно. Читать байт. Ждать 94/188/375/750 мс, слать reset, считывать presence...
И это все коротенькими действиями каждую миллисекунду. Все остальное время МК может делать все что угодно.
Если можно пожертвовать двумя выводами МК - Rx+Tx, можно сделать общение по 1wire средствами UART. Если без прерываний, то тоже периодическим поллингом из машины состояний. С прерываниями - иногда проще. Но овчинка выделки не стоит. Выигрыш по производительности там будет, но ценой проигрыша в объеме кода.
Но тут сильно зависит от задачи.
В какой то задаче, к примеру, у меня СТМка 80-85% времени была занята получением данных в реальном времени, раскидыванием их в ОЗУ и обработкой.
Вывод данных на дисплей, опрос управления - по остаточному принципу был. И там же - чтение DS-ки, при помощи какого то UARTа. В свободное время, по одному биту. Без блокирования. На чтение 8 байт из DS-ки занимало 64 мс. По биту в миллисекунду.

Так что читать датчик можно по разному.

Alex_641, Если МК показывает информацию каждые 5 сек разную, то датчик все равно можно читать раз в 30 сек и держать температуру в какой то переменной.

А вообще да, прибор странный у автора вышел. но там, насколько я понимаю - было такое ТЗ - новая прошивка под готовую схему.

Добавлено after 14 minutes 44 seconds:
Eddy_Em, кстати, а как на i2c сделать 1Wire?
Белая и Пушистая
Аватара пользователя
Alex_641
Поставщик валерьянки для Кота
Сообщения: 2314
Зарегистрирован: Вт янв 26, 2021 22:33:21

Re: Очередной термометр на DS18B20

Сообщение Alex_641 »

Just_Fluffy писал(а):Alex_641, Если МК показывает информацию каждые 5 сек разную, то датчик все равно можно читать раз в 30 сек и держать температуру в какой то переменной.
Можно ! :)) Можно даже не держать, и не температуру :)))
Не спрашивай по ком звонит колокол, он звонит по тебе !
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Очередной термометр на DS18B20

Сообщение Eddy_Em »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4294096#p4294096"]Eddy_Em, кстати, а как на i2c сделать 1Wire?[/uquote]
Ну гугол же есть!
Я делал на UART, но таки больше мне понравилось на таймере с DMA. Правда, в любом случае, проще взять рублевый китайский NTC и использовать его вместо убогого DS18: точность примерно такая же (если откалибровать), зато накладных расходов 0. Просто DMA циклически опрашивает все нужные каналы АЦП и складывает данные в массивы. А ты, когда нужно, отбираешь из этого массива (я по 9 выборок делаю) данные и простейшей функцией из numerical receipies вычисляешь медиану. Ну, а потом элементарной кусочно-линейной интерполяцией получаешь температуру. Для интерполяции с точностью в районе ±0.5℃, как у убогого DS18, хватит 20-30 пар uint18_t.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

Re: Очередной термометр на DS18B20

Сообщение Just_Fluffy »

Eddy_Em, гугл блондинке начинает вываливать преобразователи i2c <-> OneWire
Поэтому ж и спросила... На юарте я делала.... накладных расходов практически нет. Особенно, если полудуплекс включить.
Белая и Пушистая
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Очередной термометр на DS18B20

Сообщение Eddy_Em »

Кстати, да: на некоторых STM32 вообще по 4 (а то и больше) уартов, многие из которых могут в полудуплексе работать. Если забульбенить с DMA, щикарно будет. Как и на таймере с DMA. А в случае I2C не везде можно отключить ненужную ногу SCL, да и старт придется ногодрыгом выпендривать с прерываниями или КА…
Кроме DS18, есть еще подобные 1-wire протоколы (сталкивался с несколькими) с разными закидонами. И, конечно же, никакие МК это аппаратно не поддерживают!!! Вот и, спрашивается, на кой [censored] эти [censored] выдумывают свои говнопротоколы вместо стандартных???
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Mr.Pupkin
Мучитель микросхем
Сообщения: 432
Зарегистрирован: Ср янв 02, 2013 20:56:57
Откуда: близ Казани

Re: Очередной термометр на DS18B20

Сообщение Mr.Pupkin »

:)) :))

Я про время опроса почему спросил. Есть несколько устройств на 18B20. И наблюдаю я саморазогрев (так что ли выразиться....) датчиков. Вот пример. Датчик в погребе (оный закрыт и проч.). Включаю термометр, у него опрос 750 мс, через 5 мин t° датчика возрастает на 0,5°C (точно не помню). Но ВРОДЕ! там где опрос 1 раз в мин (в моём, частном случае), там его, разогрева, ВРОДЕ нет. Вот и хочу провести калибровку.
А по погрешности измер. 18B20 : калибровал 5 шт (от разных продавцов алигадюшника), максимальная погрешность (я измерял в диап. -20°C...+40°C) 0,6°C после -10°C, а минимальная 0,1°C, но после +25°C возрастает тоже где-то до 0,5...0,6°C
Последний раз редактировалось Mr.Pupkin Пн сен 26, 2022 21:40:42, всего редактировалось 2 раза.
Ответить

Вернуться в «AVR»