Уважаемые пользователи! Наш сайт и форум содержится на средства полученные от рекламы. Если вы хотите и дальше продолжать общаться, скачивать, и т.п. пожалуйста отключите блокировку рекламы для нашего сайта/форума. Можно и покликать по рекламным ссылкам, так будут больше выплаты. Спасибо за понимание!

Датчик DS18B20 с контролем работоспособности

есть сигнал обрыва, только один датчин на один пин

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
RedSky
Лейтенант
Сообщения: 383
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 52
Откуда: Днепропетровск
Имя: Алексей

Датчик DS18B20 с контролем работоспособности

#1

Сообщение RedSky » 27.10.2018{, 00:57}

Дальнейшая доработка моего блока (выкладывал на старом форуме), упростил использование в проекте, теперь не надо генераторов и триггеров.
Блок служит для опроса одного датчика (только один датчик на один пин). Реализован контроль работоспособности датчика.
Не требуется прописывать адрес датчика, можно заменять датчик без отключения устройства.
Работает следующим образом: сразу после включения контроллера или подключения датчика происходит частый опрос шины (каждые 800 мс), на выходе "error" при этом высокий уровень, в случае нахождения датчика происходит измерение температуры. Выход "error" будет сброшен после следующего опроса, это нужно что бы пропустить некорректные 85 градусов. Далее опрос происходит с заданным периодом (вход "period"). В случае обрыва датчика поиск снова выполняется с периодом 800 мс независимо от установленного периода опроса. Опрос происходит только при наличии высокого уровня на входе "EN"
Входы:
EN - разрешение опроса
period - период опроса, мс
Выходы:
temp - температура
crcOK - контрольная сумма правильная
error - обрыв линии данных, нет питания датчика, датчик неисправен
Параметры пользователя:
pins - номер пина для подключения датчика
Нужна библиотека OneWire.
ds18b20_error_Ver_0.2_(CODE).ubi
(86.44 КБ) 294 скачивания


Добавил новый блок, т. к. старый не обеспечивал должной надёжности. Теперь контроль более строгий, контрольная сумма принимается в расчёт в любом случае. Выход ошибки теперь один, по прежнему когда есть ошибка опрос максимально частый независимо от заданного времени для максимально быстрого восстановления рабочего состояния. В остальном без изменений.
ds18b20_errorCRC_Ver_0.1_(CODE).ubi
(86.72 КБ) 92 скачивания
Последний раз редактировалось RedSky 25.02.2020{, 10:02}, всего редактировалось 2 раза.

Аватара пользователя
RedSky
Лейтенант
Сообщения: 383
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 52
Откуда: Днепропетровск
Имя: Алексей

Датчик DS18B20 с контролем работоспособности

#2

Сообщение RedSky » 02.11.2018{, 13:39}

Обновил блок. Изменил алгоритм опроса при потере связи. Теперь можно задать частоту опроса более 32 секунд.

Timur
Рядовой
Сообщения: 14
Зарегистрирован: 25.01.2019{, 11:05}
Репутация: 0
Имя: Тимур

Датчик DS18B20 с контролем работоспособности

#3

Сообщение Timur » 27.01.2019{, 10:43}

Доброго дня.
Делаю автоматику на теплицу. По проекту в теплице 4 датчика ds18b20.
Необходимо вычислить среднюю температуру, но чтобы при выходе из строя датчика он не брался в расчет.
Вопрос: если на входе "EN" вашего блока не будет сигнала(подать инвертированный сигнал "error"), что будет на выходе "temp"?

P.S. можно было конечно на практике проверить, просто датчик сейчас в пути, а ручонки чешутся :smile469:

Brand2
Лейтенант
Сообщения: 330
Зарегистрирован: 26.02.2018{, 21:27}
Репутация: 23
Откуда: Haifa
Имя: Alex

Датчик DS18B20 с контролем работоспособности

#4

Сообщение Brand2 » 27.01.2019{, 14:26}

Timur, я использую бп ds18b20,после него ставлю фильтр Filtr_anomal,где задаю дельту в разумных пределах и потом блок сравнения,и если температура выходит за предела допустимых значений то присваиваю переменной error.

Аватара пользователя
diman27
Сержант
Сообщения: 233
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 2
Откуда: Белово

Датчик DS18B20 с контролем работоспособности

#5

Сообщение diman27 » 17.02.2019{, 11:24}

Спасибо автору за блок. Подскажите как его с esp использовать?

smol
Рядовой
Сообщения: 61
Зарегистрирован: 16.11.2017{, 18:25}
Репутация: 0

Датчик DS18B20 с контролем работоспособности

#6

Сообщение smol » 18.02.2019{, 13:20}

А если 8 штук использовать?

Аватара пользователя
RedSky
Лейтенант
Сообщения: 383
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 52
Откуда: Днепропетровск
Имя: Алексей

Датчик DS18B20 с контролем работоспособности

#7

Сообщение RedSky » 18.02.2019{, 14:55}

На ESP не проверял, но отличий в использовании не должно быть.
Количество любое, но все должны быть подключены к разным пинам.

vovka1973
Лейтенант
Сообщения: 654
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 20
Откуда: kazahstan

Датчик DS18B20 с контролем работоспособности

#8

Сообщение vovka1973 » 22.11.2019{, 18:02}

RedSky писал(а):
18.02.2019{, 14:55}
На ESP не проверял, но отличий в использовании не должно быть.
Количество любое, но все должны быть подключены к разным пинам.
На esp32 работает :smile9:
Изображение

Аватара пользователя
RedSky
Лейтенант
Сообщения: 383
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 52
Откуда: Днепропетровск
Имя: Алексей

Датчик DS18B20 с контролем работоспособности

#9

Сообщение RedSky » 25.02.2020{, 10:02}

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

Ответить

Вернуться в «Датчики и энкодеры»