SerOv писал(а): ↑08.02.2021{, 18:22}
А это сопротивление как то рассчитывается?
Есть какая то зависимость, от количества датчиков?
Здравствуйте! Ваш интерес приятно удивил, потому как очень немногих ардуинщиков и тем более пользователей программы "волнуют глубинные процессы", потому не пожалею времени для объяcнения, посмотрим на сколько небесполезного.
Для расчёта сопротивления подтягивающего резистора необходимо знать суммарную емкость линии связи (кабеля + входных/выходных цепей датчик_а_ов и МК), которые вместе образуют RC-цепь. Так как 1-Wire- времязависимая шина, то необходимо обеспечить скорость нарастания/спада логического уровня сигнала
Пример и данные для расчёта:
Витая пара типовая емкость - 1pF/дюйм или 394pF/п.метр
Емкость входа(I/O) AVR MCU ATMega328P - 20 pF; (для ESP- смотрим её Datasheet, для платы будет больше)
Емкость входа (вывода) DS18B20 Capacitance Cin/out - 25 pF; (смотрим Datasheet DS18B20)
Напряжение переключения логического уровня (HIGH) для (см. таблицу 30-28, под спойлером):
Vcc=5,0V - 2.6 V;
Vcc=3,3V - 1.8 V;
Vcc=3,0V - 1.6 V;
Применяем формулу: Vcap = Vcc * (1- e ^ (- tconst / R * C))
В итоге: зарядить емкость RC-цепи (достичь переключения в высокий логический уровень), при:
R= 4.7kOhm (PULLUP Resistor) + сопротивление жил кабеля (здесь пренебрегаем)
C= 3940+20+(5*25)= 4 085pF (для 10 п.м. витой пары, AVR MCU и 5-и датчиков DS18B20)
до 55% от Vcc= 3.3V это 100%; Vcap= 1.8V это 55%;
получиться за 0.0148 mSec (14,8 uSec), при необходимом tconst меньше 0,014 mSec, или <14 uSec., а значит нужно уменьшить R из-за увеличения емкости за счёт линии и колличества датчиков и ув. nalnik дал резонный совет.
Калькулятор расчёта постоянной времени RC-цепи - здесь.
Руководство по построению протяжённых линий/сетей для 1-Wire
здесь.
Внимание! Приобретая датчики DS18B20 обязательно убедитесь что Вам не подсунули
DS18B20-PAR, которые предназначены исключительно для применения по схеме с паразитным питанием, т.е. ножка 3 датчика внутри уже заземлена!!! А у кого
проблемы с датчиком проверьте отсутствие в маркировке указанных символов
-PAR. Китайцы последнее время шлют их.
Для информации: Существует библиотека OneWireNoResistor для применения устройств на 1-Wire (в т.ч. DS18B20) без внешнего резистора (применяется внутренняя подтяжка МК ~60 kOhm и соответственно увеличены временные интервалы- timeslots).
Удачи!