Датчик DS18B20 с контролем работоспособности
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
Переписал блок в новом редакторе. Некоторые вычисления упрятал в функции - меньший расход памяти при использовании нескольких блоков. Вход периода опроса теперь подключаемый - возможен опрос по входу EN (через rtrigger, ещё меньше памяти).
Добавил возможность подключения внутреннего подтягивающего резистора (только для тестов, нет необходимости использовать внешний на 4,7к).
Добавил возможность подключения внутреннего подтягивающего резистора (только для тестов, нет необходимости использовать внешний на 4,7к).
Датчик DS18B20 с контролем работоспособности
[ref]RedSky[/ref], IDE ругается на функцию bool find_signal(byte *find_data, byte condition). Может так должно быть:
Код: Выделить всё
bool find_signal(byte *find_data, byte condition)
{
//byte j;
for (byte j=0; j<8; j++)
{
if (find_data[j] == condition) return true;
//else return 0;
}
return false;
}
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
В таком случае всегда ошибка т. к. return false будет независимо от условия. Сделал через промежуточную переменную - компилятор предупреждений не выдаёт, но больший расход памяти на 42 байта.dsfbuy писал(а): 26 май 2023, 09:23 RedSky, IDE ругается на функцию bool find_signal(byte *find_data, byte condition). Может так должно быть:
КОД: ВЫДЕЛИТЬ ВСЁ
bool find_signal(byte *find_data, byte condition)
{
//byte j;
for (byte j=0; j<8; j++)
{
if (find_data[j] == condition) return true;
//else return 0;
}
return false;
}
На работу не влияет. Возможно кто-то ещё подскажет насчёт оптимизации.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Датчик DS18B20 с контролем работоспособности
return прерывает выполнение функции, так что до return false дело не дойдет при выполнении условия.RedSky писал(а): 26 май 2023, 11:22 В таком случае всегда ошибка т. к. return false будет независимо от условия.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Датчик DS18B20 с контролем работоспособности
а под стм32 есть возможность ковырнуть его ?
на экране ничего не отображает
на экране ничего не отображает
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Датчик DS18B20 с контролем работоспособности
Блок от ecoinsSams писал(а): 22 авг 2023, 14:33 а под стм32 есть возможность ковырнуть его ?
на экране ничего не отображает
- Imran
- Сержант
- Сообщения: 248
- Зарегистрирован: 08 ноя 2017, 20:53
- Имя: Имран
- Благодарил (а): 16 раз
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
[ref]RedSky[/ref], Совмести ли с ESP8266 ? У меня не сработало поставил пин 0 (GPIO16) и отедельно пин 16 тоже написал не работает не как.
- Imran
- Сержант
- Сообщения: 248
- Зарегистрирован: 08 ноя 2017, 20:53
- Имя: Имран
- Благодарил (а): 16 раз
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
[ref]Ander[/ref], поменял на D5 (GPIO14) зависает контроллер точнее дисплей (OLED SSD1306) перестает работать или же данные перестают поступать
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
У gpio16 свои особенности - может не работать.
Точно работает на 12, 13, 14.
-
- Лейтенант
- Сообщения: 514
- Зарегистрирован: 31 окт 2023, 12:50
- Имя: Андрей
- Благодарил (а): 21 раз
- Поблагодарили: 94 раза
Датчик DS18B20 с контролем работоспособности
Приложите проект, ускорит решение проблемы!Imran писал(а): 10 мар 2024, 20:53 [ref]Ander[/ref], поменял на D5 (GPIO14) зависает контроллер точнее дисплей (OLED SSD1306) перестает работать или же данные перестают поступать
- Rovki
- Полковник
- Сообщения: 5722
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
Датчик DS18B20 с контролем работоспособности
Если использвать 1-3,4 датчика на каждый пин ,то можно и другие датчики найти температуры . Главное приемущество 1-wire - это использование большого количества датчиков ds18b20 на значительное расстояние .Многие авторы блоков пошли по пути- один датчик , один пин. А жаль, теряется смысл шины 1-wire...
Использовал штатный блок и опрашивал до 16 датчиков. Все хорошо, но вот выход error , что то не работает
.
Использовал штатный блок и опрашивал до 16 датчиков. Все хорошо, но вот выход error , что то не работает

Электронщик до мозга костей и не только
-
- Сержант
- Сообщения: 294
- Зарегистрирован: 08 дек 2021, 22:41
- Имя: Вячеслав
- Благодарил (а): 15 раз
- Поблагодарили: 46 раз
Датчик DS18B20 с контролем работоспособности
Ну дык, гемор при подключении и замене датчика(ов), зачастую перевешивает всю прелесть шины.Rovki писал(а): 07 май 2024, 08:26 Многие авторы блоков пошли по пути- один датчик , один пин. А жаль, теряется смысл шины 1-wire...
- Rovki
- Полковник
- Сообщения: 5722
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
Датчик DS18B20 с контролем работоспособности
У меня сделано так- все датчики подключаю на 1 шину по очереди , по одному. в веб интерфейсе задаю номер датчика (1-16) и нажимаю кнопку сканирование... и так для каждого датчика . Делается это один раз. При выходе из строя одного датчика (например 5) , откидываю шину от контроллера и сканирую новый датчик (под номером 5). Ставлю датчик на место и подключаю общею шину...Все (5 минут на замену). Быстродействие не волнует , потому как для работы с датчиками (только) использую отдельную ЕСП 8285 с веб интерфейсом. Значения температур со всех датчиков складываю в регистры , которые мастер (МК) считыват по UART (modbus RTU). датчики раскинуты в пределах 100метров. В вебинтерфейсе так же наблюдаю все температуры с датчиков, задаю уставки в энергонезависимую память для МК. Задаю скрость по uart. Если нужно можно пдключиться к локальной сети...

Ну не 48 же проводов тянуть

Отправлено спустя 7 минут 56 секунд:
Есть две разновидности таких плат на базе ESP8285
1. 1wire-UART
2. 2Wire- RS485
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 5722
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
Датчик DS18B20 с контролем работоспособности
Отправлено спустя 49 минут 32 секунды:Rovki писал(а): 07 май 2024, 09:25У меня сделано так- все датчики подключаю на 1 шину по очереди , по одному. в веб интерфейсе задаю номер датчика (1-16) и нажимаю кнопку сканирование... и так для каждого датчика . Делается это один раз. При выходе из строя одного датчика (например 5) , откидываю шину от контроллера и сканирую новый датчик (под номером 5). Ставлю датчик на место и подключаю общею шину...Все (5 минут на замену). Быстродействие не волнует , потому как для работы с датчиками (только) использую отдельную ЕСП 8285 с веб интерфейсом. Значения температур со всех датчиков складываю в регистры , которые мастер (МК) считыват по UART (modbus RTU). датчики раскинуты в пределах 100метров. В вебинтерфейсе так же наблюдаю все температуры с датчиков, задаю уставки в энергонезависимую память для МК. Задаю скрость по uart. Если нужно можно пдключиться к локальной сети...
Ну не 48 же проводов тянуть(16х3)...
Отправлено спустя 7 минут 56 секунд:
Есть две разновидности таких плат на базе ESP8285
1. 1wire-UART
2. 1Wire- RS485
Без веб интерфейса , согласен - гемор

Электронщик до мозга костей и не только
- Drakon88
- Рядовой
- Сообщения: 32
- Зарегистрирован: 02 июл 2019, 20:24
- Имя: Михаил
- Благодарил (а): 4 раза
Re: Датчик DS18B20 с контролем работоспособности
Не всегда удобно использовать много датчиков на одной шине, кому как и для чего, задачи разные бывают.. Датчики на одной шине будут очень медленные, на получение информации от одного требуется 0,75 сек, если датчиков 10 шт, то придется ждать 7,5 сек, так как шина занята и контроллер ждет ответа и сам кстати ничем другим не может заниматься, как будто в delay уходит.. Мне например нужно от 10 датчиков получить одновременно данные и за время не более 0,2 сек и чтобы данные обновлялись независимо (ну можно и синхронно, но тогда не более 0,1 сек). Вот пока что сделал каждый датчик на свой пин и вывод на дисплей с i2c, работают, но оказалось что датчики имеют программируемую точность, от которой зависит скорость. И с завода они идут по умолчанию как раз на самой медленной скорости - 750 мс. В блоках есть изменение времени опроса (800 мс например), можно подредактировать это время, но эффекта не будет, так как надо сами датчики перенастраивать на 8 бит, а не на 11. В блоках не нашел этой функции, может кто сталкивался с этим или существует блок с этой настройкой? И вопрос вдогонку - если перешить разрядность датчика, то он запомнит это после отключения питания или нужно будет каждый раз слать команду на значение разрядности?Rovki писал(а): 07 май 2024, 08:26 Если использвать 1-3,4 датчика на каждый пин ,то можно и другие датчики найти температуры . Главное приемущество 1-wire - это использование большого количества датчиков ds18b20 на значительное расстояние .Многие авторы блоков пошли по пути- один датчик , один пин. А жаль, теряется смысл шины 1-wire...
Использовал штатный блок и опрашивал до 16 датчиков. Все хорошо, но вот выход error , что то не работает.
P.S.: удобство этих датчиков не только в том, что можно повесить их несколько штук на одну шину, а в том, что вообще эта шина есть и передает он не аналоговый сигнал, который плавает и нестабилен, а сразу цифровой, ну и хорошая точность и калибровка.
- Rovki
- Полковник
- Сообщения: 5722
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
Re: Датчик DS18B20 с контролем работоспособности
Это же датчик температуры, которая не так часто меняется. ..что за задача ,которая требует измерения за доли секунды и отрабатывает их???
Электронщик до мозга костей и не только
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя