Задача Задача №3463499
А
А
Ключевая ошибка с логической стороны:
- 19: Input = sensors.getTempCByIndex(0);
- Почему ошибка: в setup подписано чтение температуры до того, как были произведены запросы на измерение. DallasTemperature требует вызова sensors.requestTemperatures() перед чтением getTempCByIndex(). Чтение в setup возвращает неопределённое значение и может привести к неверному начальному состоянию регулятора.
Как исправить (предложение исправления):
- Удалить чтение температуры из setup и перенести чтение в loop после вызова sensors.requestTemperatures().
- Пример устранения проблемы:
- В setup убрать строку 19.
- В loop оставить уже существующие строки:
- sensors.requestTemperatures();
- Input = sensors.getTempCByIndex(0);
Дополнительно можно улучшить надёжность:
- В setup можно добавить установка разрешения термодатчика, например: sensors.setResolution(TEMPERATURE_PRECISION); (используйте TEMPERATURE_PRECISION=9 в соответствии с вашим намерением).
Итог:
- Ошибка на строке 19 (пользовательский номер: 19). Логический дефект — чтение значения температуры до выполнения запроса к датчику. Исправление — удалить чтение из setup и перенести в loop после sensors.requestTemperatures().