Температура


Руководство для датчика температуры DS18B20 с Arduino

В этом руководстве показано, как использовать датчик температуры DS18B20 с платой Arduino. Вы узнаете, как подключить датчик, установить необходимые библиотеки и получить температуру от одного или нескольких датчиков DS18B20.

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

Датчик температуры DS18B20-это однопроводный цифровой датчик температуры. Это означает, что для связи с Arduino требуется только одна линия передачи данных (и GND).

Он может питаться от внешнего источника питания или получать питание от линии передачи данных (так называемый "паразитный режим"), что исключает необходимость во внешнем источнике питания.

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

Датчик температуры DS18B20 также доступен в водонепроницаемом исполнении.

Вот краткое описание наиболее актуальных спецификаций датчика температуры DS18B20:

Связь осуществляется по однопроводной шине связи

Диапазон питания: от 3,0 в до 5,5 в

Диапазон рабочих температур: от-55ºC до +125ºC

Точность +/-0.5 ° С (в диапазоне -10С до 85ºC)

Схематический

#include <OneWire.h>

#include <DallasTemperature.h>

// Data wire is conntec to the Arduino digital pin 4

#define ONE_WIRE_BUS 4

/Setup a oneWire instance to communicate with any OneWire devices

OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature sensor

DallasTemperature sensors(&oneWire);

void setup(void)

{

// Start serial communication for debugging purposes

Serial.begin(9600);

// Start up the library

sensors.begin();

}

void loop(void){

// Call sensors.requestTemperatures() to issue a global //temperature and Requests to all devices on the bus

sensors.requestTemperatures();

Serial.print("Celsius temperature: ");

// Why "byIndex"? You can have more than one IC on the same //bus. 0 refers to the first IC on the wire

Serial.print(sensors.getTempCByIndex(0));

Serial.print(" - Fahrenheit temperature: ");

Serial.println(sensors.getTempFByIndex(0));

delay(1000);

}