добрый день!
перечитал наверное почти все темы по 1-wire
пробовал принять те или иные варианты
пока результата нет. хотелось бы помощи зала
суть такая:
есть в наличии герметичные датчики DS18B20 (брал из поставок с оборудованием HDL) =далее как тип1
есть в наличии простые датчики (детальки, с алиэкспресс) = далее как тип 2 (для простоты описания проблемы)
в датчиками тип 1 - проблем при подключении к WB5 нет
при дополнительном подключении датчиков тип 2 - они не определяются
при отключении типа 1 и на линии только тип 2 - не определяются
далее беру тип 2 и подключаю на ардуину уно
тип2 определяется отлично
добавляю датчик тип 1 - все датчики видятся отлично
при этом на макетной плате есть 4.7кОм сопротивление (+ и данные), при его отключении связь между ардуино и датчиками отваливается
теперь беру всю эту конструкцию на макетной плате и несу к WB5
при этом на WB5 висит шлейф из 4 датчиков типа1, метров 20
добавляю макетную плату с 2 датчиками (тип 2) и 1 датчик (тип 1)
итого: WB5 сразу ловит датчик тип1 (HDL), при этом на макетной плате все еще висит сопротивление 4.7кОм
тип 2 - не определяется
при отключении сопротивления - ситуация без изменения, датчики с алиэкспресс не ловятся WB5
сенсор -герметичный - ловится. итого на шине 5 датчиков температуры
с ардуино когда подключены датчики вижу такую картинку
причем сейчас обратил внимание
что при подключении датчиков которые на макетной плате к WB5
в итоге тип2 очень сильно нагревается и становится не рабочим - сгорает
На мой взгляд уже в самой постановке вопроса есть ответ.
Контроллер работает нормально с сенсорами из другой партии.
В данном случае не имеет значение его оформление в герметичном корпусе.
Либо это не ds18b20 (проверьте маркировку внимательно), либо партия “левая”.
да. все верно.
один из подключенных датчиков (тип2) - на макетной плате, все как было снято с арудионо, за искл сопротивления. его я снимаю. подключаю все это к WB5
вчера заметил, что один сенсор нагревается сильно.
после этого обратно макетную плату к арудионо - он уже не живой, но и другие не видны
втыкаю новый из упаковки - они как не в чем не бывало считываются
Ещё одна проблема с датчиками ds18b20.
Купил на https://ru.aliexpress.com/item/SAMIORE-18B20/32832225749.html 40 штук датчиков.
Подключаю напрямую к WB6 по трёхпроводной схеме с питанием 5 вольт - работают (точность 0,5 градуса !?).
Подключаю к WB-M1W2 (по двухпроводной схеме с паразитным питанием) показывает 0 градусов (при отключении датчика преобразователь сигнализирует красным о пропадании его).
Соответственно, если беру просто датчик (не из этой партии) в ТО-92, то работает и так и так без вопросов.
Что это может быть?
Произвел замер напряжения в двух проводной линии.
Во время преобразования данных перед передачей у датчика в ТО-92 напряжение с 3.23 падает до 3.16В, а у датчика в гильзе оно с 3.23В падает почти до 0В, затем поднимается до 1,75 (наверное передача) и снова вырастает до 3.23В.
Это доработанная схема паразитного питания.
В чистом виде ds18b20 работает нормально и по двум проводам.
На провод “земли” вешается “земля” и “+” датчика, а на провод данных вешается Data от датчика.
Внутри уже есть и диод и кондер, но в моем случае, то ли сэкономили и не поставили, то ли их не хватает для нормальной работы.
Судя по замерам, когда напряжение “проваливается” почти до нуля во время преобразования, этих компонентов действительно там нет.
Дополню тему - попытался поставить 1wire ds18b20 в герметичном исполнении. Может проработать полдня, а может через 10 минут отвалится, в логах вижу:
Apr 25 00:07:31 wirenboard-ALWR73U7 user.info kernel: [24454.757938] w1_master_driver w1_bus_master1: Family 0 for 00.680000000000.a7 is not registered.
Apr 25 00:08:13 wirenboard-ALWR73U7 user.info kernel: [24497.381444] w1_master_driver w1_bus_master1: Family 0 for 00.e80000000000.2b is not registered.
Apr 25 00:09:19 wirenboard-ALWR73U7 user.info kernel: [24563.488531] w1_master_driver w1_bus_master1: Family 0 for 00.180000000000.5f is not registered.
Apr 25 00:10:01 wirenboard-ALWR73U7 user.info kernel: [24604.766096] w1_master_driver w1_bus_master1: Family 0 for 00.980000000000.d3 is not registered.
Датчик работает как в двухпроводном подключении, так и в трехпроводном, провод медный 4х0.75, около 12 метров.
Помогает только передергивание 5V Шины, к которой он подключен.
Для этого написал процедуру, может кому пригодится:
if (dev[“wb-w1”][“28-05473b6a1f00”] == “”) { log(“DS18B20 disconnected.”); toggle5V(); }
setInterval(function() { if (dev[“wb-w1”][“28-05473b6a1f00”] == “”) { log(“Temp watchdog fired”); toggle5V(); } }, 60000); // 60000 = каждые 60 секунд идет проверка, меньше 10 секунд лучше не ставить, будет слишком рьяно дергать 5V шину
function toggle5V() {
//Перезагрузка шины 1wire через передергивание выхода 5V
log(“5V toggled”);
dev[“wb-gpio”][“5V_OUT”] = false;