Градусник DS18B20

Нужные элементы

Датчики:

Описание датчика

Схема подключения

Написание кода

// Подключение библиотеки для работы с датчиком
#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);
}

Last updated

Was this helpful?