Датчик температуры DS18B20 🌡️ KY-001

Введение
Датчик DS18B20 представляет собой цифровой термометр, который позволяет отслеживать окружающую температуру. Этот датчик имеет уникальный серийный номер и может быть подключен к одному шине вместе с другими датчиками DS18B20.
Технические характеристики:
Диапазон входного напряжения: 3.0V до 5.5V.
Диапазон измерения температуры: -55°C до +125°C, точность в диапазоне -10°C до +85°C ±0.5°C.
Разрешение: 9-12 бит, преобразование в 12-битный цифровой формат за 750 миллисекунд.
Примечания по использованию:
Не путать датчик DS18B20 с обычным транзистором.
Убедиться в правильном подключении питания и заземления.
На практике на шину не следует подключать слишком много датчиков. Учесть ограничения по длине шины для подключения датчиков.
Пример кода для тестирования DS18B20:
#include <OneWire.h>
OneWire ds(10); // подключение к выводу 10
void setup() {
Serial.begin(9600);
}
void loop() {
byte data[12];
byte addr[8];
if (!ds.search(addr)) {
ds.reset_search();
return;
}
if (OneWire::crc8(addr, 7) != addr[7]) {
Serial.println("CRC недействителен!");
return;
}
if (addr[0] != 0x28) {
Serial.println("Устройство не принадлежит семейству DS18S20.");
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44, 1); // запуск преобразования
delay(1000); // задержка 1 секунда
ds.reset();
ds.select(addr);
ds.write(0xBE); // чтение Scratchpad
for (int i = 0; i < 9; i++) {
data[i] = ds.read();
}
int Temp = (data[1] << 8) + data[0];
Temp = Temp >> 4;
Temp = Temp * 1.8 + 32; // преобразование в Фаренгейты
Serial.print("Температура = ");
Serial.println(Temp);
}