Как подключить термодатчик к Ардуино

СОДЕРЖАНИЕ ►
Как подключить к Ардуино термодатчик DS18B20 и DS18B22, чтобы сделать термометр с помощью библиотеки OneWire — рассмотрим в этом уроке. В отличие от датчика температуры и влажности DHT11, сенсор работает в широком диапазоне температур и способен измерять отрицательные температуры. Интегральный датчик температуры DS18B20 для Arduino имеет разрешающую способность измерений до 0,0625 °C.
Датчик DS18B20: характеристики
- диапазон измерения температуры -55 … +125 °C;
- погрешность сенсора не превышает 0,5 °C;
- разрешающая способность достигает 0,0625 °C;
- сенсор DS18B20 откалиброван при изготовлении;
- можно подключить до 127 датчиков на одной линии;
- для подключения требуется только 3 провода.

Цифровой датчик DS18B20 отправляет данные по Wire шине и может работать на одной линии с множеством других устройств. Каждый датчик имеет свой персональный 64-битный код, позволяющий микроконтроллеру Arduino общаться на одной шине сразу с несколькими сенсорами. Датчик преобразует температуру окружающей среды в цифровой код, т.е. для подключения не требуется дополнительного АЦП.
Датчик может быть выполнен в нескольких вариантах (смотри фото выше), от этого будет зависеть только схема подключения термодатчика к Arduino NANO или UNO. В первом случае необходимо использовать подтягивающий резистор на 4.7 кОм. Датчик, в виде готового модуля уже имеет резистор. Третий вариант — это датчик в герметичном корпусе, который можно смело использовать в горячей воде.
Подключение к Ардуино датчика ds18b20
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- термодатчик DS18B20;
- макетная плата;
- резистор на 4.7 кОм;
- провода «папа-мама», «папа-папа».

Подключите датчик температуры DS18B20 к микроконтроллеру согласно схеме, и загрузите скетч для датчика температуры ds18b20 к Arduino UNO.
Работа с библиотекой DallasTemperature
Библиотека для Arduino DallasTemperature Sensors OneWire значительно облегчает и упрощает работу с сенсором DS18B20. Описание библиотеки DallasTemperature.h на русском говорит, что датчик управляется несколькими простыми функциями, которые представлены в следующем скетче. Схема подключения датчика не меняется, а скачать библиотеку DallasTemperature.h для Ардуино можно на нашем сайте здесь.
Скетч для датчика ds18b20 Ардуино
#include <OneWire.h> #include <DallasTemperature.h> OneWire oneWire(15); // порт подключения датчика (A1) DallasTemperature ds(&oneWire); void setup() { Serial.begin(9600); // инициализация монитора порта ds.begin(); // инициализация датчика ds18b20 } void loop() { ds.requestTemperatures(); // считываем температуру с датчика Serial.print(ds.getTempCByIndex(0)); // выводим температуру на монитор Serial.println("C"); }
Скетч для нескольких датчиков на одной шине
Подключите несколько термодатчиков DS18B20 к микроконтроллеру согласно схеме, и загрузите скетч для датчика температуры ds18b20 к Arduino UNO.
#include <OneWire.h> #include <DallasTemperature.h> OneWire oneWire(15); // порт подключения датчиков (A1) DallasTemperature ds(&oneWire); byte num; // количество подключенных датчиков void setup() { Serial.begin(9600); // инициализация монитора порта ds.begin(); // инициализация датчика ds18b20 num = ds.getDeviceCount(); // узнаем количество датчиков Serial.print("Number: "); // выводим полученное количество Serial.println(num); } void loop() { // выполняем цикл столько, сколько найдено датчиков на шине for (byte i = 0; i < num; i++){ Serial.print("Sensor "); Serial.print(i); Serial.print(": "); ds.requestTemperatures(); // считываем температуру с датчика Serial.print(ds.getTempCByIndex(i)); Serial.println("C"); } Serial.println(""); }
Пояснения к коду:
- DallasTemperature датчик подключается к порту A1, он же 15 цифровой порт;
- Цикл for выполняется столько раз, сколько обнаружено сенсоров на одой шине.
Спасибо огромное автору, для людей кто впервые подобное пробуют очень понятно и доходчиво написано!!