Датчик температуры DS18B20

Датчик температуры DS18B20 является цифровым температурным датчиком. Это означает, что вы можете измерить  температуру с помощью очень простой схемы. Он связывается с общей шиной, что означает, что вы можете подключить несколько устройств и измерить их значения, используя только один цифровой вывод Arduino.

Датчик имеет всего три контакта, как вы можете видеть на следующем рисунке. DS18B20 также доступен в водонепроницаемой версии.

Вот некоторые основные особенности датчика температуры DS18B20:

  • Коммуникации по однопроводной шине связи
  • Температура рабочего диапазона: от -55ºC до 125ºC
  • Точность +/- 0,5 ºC (между диапазоном от -10ºC до 85ºC)

Необходимые детали

Arduino UNO, breadboard, датчик температуры DS18B20, резистор 4700 Ом, перемычки.  

Схема

Требуется 3-проводное соединение. Вот схема, которую вы должны соблюдать:

Чёрная деталь на схеме — это датчик температуры.

Одновременно можно считывать температуру более чем одного датчика, используя только один цифровой контакт Arduino. Для этого вам просто нужно соединить все контакты D0 с любым цифровым выводом Arduino.

Вам нужно будет установить библиотеки OneWire и DallasTemperature.

  1. У вас должна быть .zip-архивы библиотек.
  2. Добавьте через “скетч” — “библиотеки”-”добавить zip библиотеку”

Загрузите следующий код на плату Arduino.

#include <OneWire.h>
#nclude <DallasTemperature.h>


// ds18b20 подключается к цифровому выходу 2 Arduino
#define ONE_WIRE_BUS 2

// Настройка экземпляра oneWire для связи с любыми устройствами OneWire
OneWire oneWire(ONE_WIRE_BUS);

//передача ссылк OneWire на датчик температуры
DallasTemperature sensors(&oneWire);

void setup(void)
{
  Serial.begin(9600);
  // Запуск датчиков
  sensors.begin();
}


void loop(void){
  // Вызовите sensor.requestTemperatures (), чтобы выдать глобальную температуру и запросы всем устройствам на шине
  sensors.requestTemperatures();
 
  Serial.print("Celsius temperature: ");
  //Вы можете иметь более одной микросхемы на одной шине. 0 относится к первому IC на проводе
  Serial.print(sensors.getTempCByIndex(0));
  Serial.print(" - Fahrenheit temperature: ");
  Serial.println(sensors.getTempFByIndex(0));
  delay(1000);
}

Наконец, вы должны открыть серийный монитор Arduino IDE со скоростью 9600 бод, и вы увидите температуру, отображаемую как в градусах Цельсия, так и по Фаренгейту:

Поделитесь этой статьей с другом, который также любит электронику.

И пишите в комментариях, если возникли трудности.

Загрузка ...
The Robot
Adblock
detector