Перейти к содержанию

Датчик DS18B20 Ардуино, как подключить

Датчик DS18B20 Ардуино, как подключить

Как подключить датчик температуры DS18B20 / DS18B22 к Arduino для создания термометра с помощью библиотеки OneWire и DallasTemperature. В отличие от датчика влажности воздуха DHT11, сенсор выполнен в водонепроницаемом корпусе, работает в широком диапазоне температур и способен измерять отрицательные температуры. Цифровой датчик температуры ds18b20 имеет точность измерения до 0,0625 °C.

Необходимые компоненты:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • датчик температуры DS18B20 / DS18B22
  • светодиод и резистор
  • макетная плата
  • коннекторы
  • библиотека DallasTemperature.h и OneWire.h

Дополнительные материалы на эту тему:

  1. Подключение датчика температуры LM35 к Ардуино
  2. Подключение датчика температуры и влажности DHT22
  3. Подключение датчика атмосферного давления BMP180

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

DS18B20 Arduino распиновка, характеристики

DS18B20 Arduino распиновка, характеристики

Характеристики DS18B20 datasheet на русском

  • Напряжение питания: 3,3 В и 5 В
  • Диапазон измерений: от -55°C до +125°C
  • Точность: ±0,5°C от -10°C до +85°C
  • Конфигурируемое разрешение: от 9 до 12 бит
  • 64-битный уникальный идентификатор
  • Время отклика: менее 750 мс
  • Возможность подключения нескольких сенсоров к одному пину

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

Как подключить датчик DS18B20 к Arduino

Как подключить датчик DS18B20 к Arduino

Библиотека Arduino DallasTemperature Sensors OneWire значительно облегчает и упрощает работу с датчиком ds18b20. В описании библиотеки DallasTemperature.h указано, что датчик управляется несколькими простыми функциями, которые представлены в следующей программе. Подключите водонепроницаемый датчик температуры ds18b20 к микроконтроллеру в соответствии со схемой на картинке и загрузите программу.

Скетч для измерения температуры на DS18B20


#include "OneWire.h"
#include "DallasTemperature.h"
 
OneWire oneWire(A1);
DallasTemperature ds(&oneWire);

void setup() {
  Serial.begin(9600);
  ds.begin();
}

void loop() {
  ds.requestTemperatures();
  int t = ds.getTempCByIndex(0)
 
  Serial.print(t);
  Serial.println( "C");
 
  delay(1000);
}

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

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

Один провод позволяет подключить несколько датчиков к одному порту Ардуино. Каждый датчик имеет уникальный адрес, закодированный в 64 битах, который связан с библиотекой, загруженной в Arduino. Другими словами, для подключения нескольких датчиков LM35 вам понадобится задествовать несколько пинов Arduino, то с ds18b20 вы можете подключить все к одному пину (поскольку это цифровой, а не аналоговый датчик).

Скетч для датчика температуры DS18B20 Ардуино

#include "OneWire.h"
#include "DallasTemperature.h"
 
OneWire oneWire(A1);
DallasTemperature ds(&oneWire);

void setup() {
  Serial.begin(9600);
  ds.begin();
  pinMode(10, OUTPUT);
}

void loop() {
  ds.requestTemperatures();
  int t = ds.getTempCByIndex(0)
 
  Serial.print(t);
  Serial.println( "C");

  if (t > 25) { digitalWrite(10, HIGH); }
  else { digitalWrite(10, LOW); }
 
  delay(1000);
}

Заключение. Датчик является цифровым и можно использовать ds18b20 на большом расстоянии без ухудшения информации. Единственным недостатком является то, что этот датчик использует протокол Dallas 1-wire, который является довольно сложным, но, к счастью, уже существуют библиотеки. Для подключения этого сенсора рекомендуется библиотека Dallas Temperature Control (DallasTemperature.h) и OneWire.h.

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

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

newzaym
➜