А в чём смысл подключать питание термодатчика так, как вы это сделали? Как думаете строка 46 у вас работает?
И что в строке 52?
Вот не зря я библами для Далласа никогда не пользовался))
Скачал первую попавшуюся Dallas Temperature.h, глянул, а там
switch (*bitResolution)
{
case 9:
delay(94);
break;
case 10:
delay(188);
break;
case 11:
delay(375);
break;
case 12:
default:
delay(750);
break;
}
А что?
delay(), как бы…
В строке 46 установка разрешения для работы с датчиком ds18b20 (так сказано в документации)
Строка 52 нужна для работы с i2c дисплеем, я его отключил, так как думал, что проблема в нём. Забыл удалить эту строку из кода
Не думаю, что это проблема, поскольку данная функция выполняется в блоке void setup()
Ну так нужно выждать время, пока идёт преобразование. Вот они и ждут
А в документации написано, питание на датчик в этот момент нужно подать?
А строка 104?
Таким образом в функции реализовано чтение температуры
Питание на датчик в этот момент не подаётся, установка разрешения нужна для логики библиотеки
Так а я про что? 750мс задержка - можно в картишки перекинуться успеть…
Кстати, она нужна потому, что время измерения температуры у этого датчика может занять до 750 мс
То есть надо ТУПО висеть в это время ???
Вот же упорный)))
Да ладно, для большинства ванильных ардуинщиков это не проблема
А, ну так бы и сказали, что вам не важно в каком разрешении работает датчик.
Пример работы с ds18b20 без библиотек и без блокировки
https://forum.arduino.ru/t/rabota-s-datchikom-temperatury-ds18b20
Если вы нашли delay, то почему пропустили setWaitForConversion?
void DallasTemperature::setWaitForConversion(bool flag)
{
waitForConversion = flag;
}
Возможно чего и не понял, объясните пжлст