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

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

Как подключить к Ардуино термодатчик DS18B20 и DS18B22, чтобы сделать термометр с помощью библиотеки OneWire — рассмотрим в этом уроке. В отличие от датчика температуры и влажности DHT11, сенсор работает в широком диапазоне температур и способен измерять отрицательные температуры. Интегральный датчик температуры DS18B20 для Arduino имеет разрешающую способность измерений до 0,0625 °C.

Датчик DS18B20: характеристики

  • диапазон измерения температуры -55 … +125 °C;
  • погрешность сенсора не превышает 0,5 °C;
  • разрешающая способность достигает 0,0625 °C;
  • сенсор DS18B20 откалиброван при изготовлении;
  • можно подключить до 127 датчиков на одной линии;
  • для подключения требуется только 3 провода.
Подключение и распиновка термодатчика ds18b20
Подключение и распиновка термодатчика ds18b20

Цифровой датчик DS18B20 отправляет данные по Wire шине и может работать на одной линии с множеством других устройств. Каждый датчик имеет свой персональный 64-битный код, позволяющий микроконтроллеру Arduino общаться на одной шине сразу с несколькими сенсорами. Датчик преобразует температуру окружающей среды в цифровой код, т.е. для подключения не требуется дополнительного АЦП.

Датчик может быть выполнен в нескольких вариантах (смотри фото выше), от этого будет зависеть только схема подключения термодатчика к Arduino NANO или UNO. В первом случае необходимо использовать подтягивающий резистор на 4.7 кОм. Датчик, в виде готового модуля уже имеет резистор. Третий вариант — это датчик в герметичном корпусе, который можно смело использовать в горячей воде.

Подключение к Ардуино ds18b20

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno/Nano/Mega;
  • термодатчик DS18B20;
  • USB-кабель;
  • макетная плата;
  • резистор на 4.7 кОм;
  • провода «папа-мама», «папа-папа».

Подключите датчик температуры DS18B20 согласно схеме, и загрузите скетч для датчика температуры ds18b20 к Arduino UNO. Скетч скачать можно здесь.

Работа с библиотекой DallasTemperature

Библиотека для Arduino DallasTemperature Sensors OneWire значительно облегчает и упрощает работу с сенсором DS18B20. Описание библиотеки DallasTemperature.h на русском говорит, что датчик управляется несколькими простыми функциями, которые представлены в следующем скетче. Схема подключения датчика не меняется, а скачать библиотеку DallasTemperature.h для Ардуино можно по ссылке здесь.

#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");
}

Подключение нескольких датчиков на одну шину

#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(": ");
    Serial.print(ds.getTempCByIndex(i));
    Serial.println("C");
  } 
Serial.println(""); 
}

Пояснения к коду:

  1. DallasTemperature датчик подключается к порту A1, он же 15 цифровой порт;
  2. Цикл for выполняется столько раз, сколько обнаружено сенсоров на одой шине.

Задание для самостоятельного выполнения:

  1. Измените скетч, чтобы при определенной температуре, включался светодиод.
1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5,00 out of 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *