Датчик температуры DS18B20 (датчик, герметичный датчик, модуль датчика)

Описание

Датчик температуры DS18B20 - цифровой термометр, который передает данные по шине 1-Wire, может быть единственным устройством на шине, может работать и в группе. Каждый датчик имеет уникальный 64-битный код, что позволяет общаться с каждым датчиком «индивидуально». Таким образом можно распределить несколько таких датчиков в разных местах, и отслеживать температуру адресно (в том месте, где установлен конкретный датчик).

Технические характеристики

  • напряжение питания: 3-5,5В
  • диапазон измеряемой температуры: от -55 до +125˚С
  • погрешность измерения температуры: ±0,5˚С
  • максимальный потребляемый ток: 1мА
  • потребляемый ток в режиме ожидания: 750нА
  • время отклика: менее 1с

Физические размеры

  • Датчик (Д х Ш х В): 5 х 3 х 20 мм
  • Герметичный датчик (Д х Ш х В): 1030 х 6 х 65 мм
  • Модуль датчика (Д х Ш х В): 21 х 6 х 28 мм

Плюсы использования

Для всех типов:

  • Быстрый отклик датчика
  • Недорогое решение для измерения температуры
  • Возможность адресного обращения к датчику
  • Работа по шине 1-Wire
  • Низкое энергопотребление
  • Может питаться напряжением линии данных («паразитное» питание)
  • Широкий диапазон измерений
  • Высокая точность измерений

Для герметичного датчика:

  • Возможность измерения температуры жидкостей и пр.
  • Длинный герметичный шнур (1 м)

Минусы использования

  • Не измеряет влажность как некоторые аналоги

Библиотеки для работы с датчиком

При подключении датчика, вывод питания и сигнальный вывод должны быть соединены резистором на 10КОм. При объединении нескольких датчиков будет достаточно сопротивления 4,7КОм.

Внимание! При питании датчика от 3,3 В вывод OUT необходимо подтягивать резистором к 5 В !

Примеры подключения и использования

В данном примере рассмотрим подключение датчика к контроллеру (на примере Smart UNO), и вывод температуры в Serial-монитор.

Для датчика или герметичного датчика:

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

Для модуля датчика:

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

Скетч для загрузки:

#include <OneWire.h> //подключение библиотеки OneWire
#include <DallasTemperature.h> //подключение библиотеки для работы с датчиком

#define ONE_WIRE_BUS 10 //шина передачи данных

OneWire oneWire(ONE_WIRE_BUS); //создание объекта oneWire для передачи данных по технологии OneWire

DallasTemperature sensors(&oneWire); //создание объектов типа DallasTemperature дял измерения температуры

void setup() {
  sensors.begin(); //инициализация датчика(ков)
  Serial.begin(9600);
}

void loop() {
  sensors.requestTemperatures(); //запрос температуры устройств

  //Получение температуры у устройства с индексом (устройств может быть несколько на одной шине)
  // и вывод в сериал порт
  Serial.print("Temperature of device #0 is ");
  Serial.print(sensors.getTempCByIndex(0));
  Serial.println(" C");
  
}