// Подключение библиотеки для работы с датчиком
#include "OneWire.h"
/*
* Описание взаимодействия с цифровым датчиком ds18b20
*/
OneWire ds(2);
void setup(){
Serial.begin(9600);
}
void loop(){
byte data[2];
ds.reset(); // Начинаем взаимодействие со сброса всех предыдущих команд и параметров
ds.write(0xCC); // Даем датчику DS18b20 команду пропустить поиск по адресу. В нашем случае только одно устрйоство
ds.write(0x44); // Даем датчику DS18b20 команду измерить температуру.
delay(1000); // Микросхема измеряет температуру, а мы ждем.
ds.reset(); // Теперь готовимся получить значение измеренной температуры
ds.write(0xCC);
ds.write(0xBE); // Просим передать нам значение регистров со значением температуры
// Получаем и считываем ответ
data[0] = ds.read(); // Читаем младший байт значения температуры
data[1] = ds.read(); // А теперь старший
// Формируем итоговое значение:
// - сперва "склеиваем" значение,
// - затем умножаем его на коэффициент, соответствующий разрешающей способности (для 12 бит по умолчанию - это 0,0625)
float temperature = ((data[1] << 8) | data[0]) * 0.0625;
Serial.println(temperature);
}