Вы здесь

Датчик DS18B20 и схема подключения к микроконтроллеру Arduino

DS18B20

Иногда нам требуется точно измерить температуру - в этом случае мы можем воспользоваться цифровыми термометрами, например, DS18B20. Этот датчик работает по протоколу OneWire. Этот способ передачи данных намного сложнее в освоении, зато мы можем подключить до 256 устройств через 3 провода.

 

Датчик DS18B20 измеряет температуры в диапазоне от -40 до +125 с точностью до 12 разрядов.

Контакты DS18B20

Для правильной работы требуется соединить выход питания и цифровой выход через резистор на 4.7кOм.

Подключаем датчик по схеме:

Ардуино и ds18b20

В нашей программе мы будем выводить температуру с 2 датчиков в Serial. При желании можно немного дополнить скетч и подключить дисплей LCD1620 с множеством проводом или использовать подключение дисплея 1602 по i2c к Arduino.

 

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

OneWire oneWire(2); // назначаем цифровой выход на порт 2

DallasTemperature ds(&amp;oneWire); // определяем название для дальнейших функций, у нас "ds"

DeviceAddress T1 = {
  /* Вписываем сюда адрес датчика 1 */
};
DeviceAddress T2 = {
  /* Вписываем сюда адрес датчика 2 */
};

void setup() {

  ds.begin(); // начинаем работу с датчиками
  ds.setResolution(T1, 2); // определяем id датчиков, c которыми будем работать
  ds.setResolution(T2, 2);

  Serial.begin(9600);
}

void printTemperature(DeviceAddress deviceAddress) // создаем функцию для записи температуры в Serial
{
  float tempC = ds.getTempC(deviceAddress); // создаем переменную с плавающей точкой(для более точного вывода значения)
  Serial.println(tempC); // создаем переменную с плавающей точкой(для более точного вывода значения)
}
void loop() {

  ds.requestTemperatures(); // отправляем команду для принятия температуры
  Serial.print("Температура 1 =  ");
  printTemperature(T1); // выводим температуру 1

  Serial.print("Температура 2 =  ");
  printTemperature(T2); // выводим температуру 2
}

Библиотеки в стандартный комплект не входят, поэтому рекомендую почитать статью о подключении библиотек к Arduino IDE.

Хорошей Вам погоды)