Но вчера при изучении датчика наткнулся на совет в комментариях в статье о DS18B20, что можно использовать внутренний подтягивающий резистор МК.
Попробовал реализовать этот совет на Arduino Uno и FLProg.
Выложил проект термометра реализованный вышеуказанным способом. Дополнительно питание датчика организовал тоже с выводов Ардуино.
При сканировании датчика с помощью программы FLProg, в программу сканирования шины данных вставить в секцию void setup() следующий код:
СпойлерПоказать
//Программная подтяжка
pinMode(12, INPUT_PULLUP); //Подтяжка внутреннего резистора 20ком к питанию +, пин 12 и пин 10 замкнуть между собой
//питание датчика (датчик включен VDD к пину 9, DATA к пин 10, GND к пину 11)
pinMode(9, OUTPUT);//Назначаем пин 9 выходом
digitalWrite(9, 1); //На выход подаем высокий уровень +
pinMode(11, OUTPUT); //Назначаем пин 9 выходом
digitalWrite(11, 0);//На выход подаем низкий уровень -
pinMode(12, INPUT_PULLUP); //Подтяжка внутреннего резистора 20ком к питанию +, пин 12 и пин 10 замкнуть между собой
//питание датчика (датчик включен VDD к пину 9, DATA к пин 10, GND к пину 11)
pinMode(9, OUTPUT);//Назначаем пин 9 выходом
digitalWrite(9, 1); //На выход подаем высокий уровень +
pinMode(11, OUTPUT); //Назначаем пин 9 выходом
digitalWrite(11, 0);//На выход подаем низкий уровень -
СпойлерПоказать
СпойлерПоказать