Trong hướng dẫn này, tôi sẽ chỉ cho bạn làm thế nào để đọc được nhiệt độ với bộ cảm biến nhiệt độ DS18B20 với bảng Arduino.
Cảm biến nhiệt độ DS18B20 là một cảm biến nhiệt độ kỹ thuật số 1-wire. Điều này có nghĩa rằng bạn có thể đọc được nhiệt độ với một thiết lập mạch rất đơn giản. Bạn có thể kết nối nhiều thiết bị và đọc giá trị của họ chỉ cần sử dụng một pin kỹ thuật số của Arduino.
bộ cảm biến chỉ có ba chân như bạn có thể nhìn thấy trong hình dưới đây:
Tính năng, đặc điểm
Dưới đây là một số tính năng chính của bộ cảm biến nhiệt độ DS18B20:
- giao tiếp bus Comunicates hơn 1 dây
- nhiệt độ phạm vi hoạt động: -55ºC đến 125ºC
- Độ chính xác +/- 0,5 ºC (giữa -10ºC phạm vi đến 85ºC)
Đọc nhiệt độ với bộ cảm biến nhiệt độ DS18B20 và Arduino
Trong ví dụ này, bạn sẽ đọc được nhiệt độ bằng cách sử dụng cảm biến DS18B20 và Arduino, và các giá trị này sẽ được hiển thị trên Arduino nối Monitor.
schematics
Các cảm biến có thể hoạt động ở hai chế độ:
- Bình thường chế độ: kết nối 3-dây là cần thiết. Dưới đây là sơ đồ bạn cần phải làm theo:
- Parasite chế độ: chỉ có 2 dây buộc, các dữ liệu và mặt đất. Các cảm biến có nguồn gốc sức mạnh của nó từ dòng dữ liệu. Trong trường hợp này, đây là sơ đồ bạn cần phải làm theo:
Bạn có thể đọc được nhiệt độ nhiều hơn một cảm biến cùng một lúc chỉ sử dụng một kỹ thuật số pin Arduino. Cho rằng, bạn chỉ cần kết nối với nhau tất cả các chân DQ cho bất kỳ pin Arduino kỹ thuật số.
Bạn sẽ cần phải cài đặt các thư viện OneWire và Thư viện DallasTemperature.
Cài đặt thư viện OneWire
- Nhấn vào đây để tải về thư viện OneWire . Bạn nên có một thư mục .zip trong Downloads của bạn
- Giải nén .zip thư mục và bạn sẽ nhận được OneWire-master thư mục
- Đổi tên thư mục của bạn từ OneWire-master để OneWire
- Di chuyển OneWire thư mục để cài đặt Arduino IDE của bạn thư viện thư mục
- Cuối cùng, lại mở Arduino IDE của bạn
Cài đặt Thư viện DallasTemperature
- Nhấn vào đây để tải về thư viện DallasTemperature . Bạn nên có một thư mục .zip trong Downloads của bạn
- Giải nén .zip thư mục và bạn sẽ nhận được Arduino-Nhiệt-Control-Thư viện-masterthư mục
- Đổi tên thư mục của bạn từ Arduino-Nhiệt-Control-Thư viện-master đểDallasTemperature
- Di chuyển DallasTemperature thư mục để cài đặt Arduino IDE của bạn thư viện thư mục
- Cuối cùng, lại mở Arduino IDE của bạn
Sau khi cài đặt các thư viện cần thiết, tải lên các mã sau vào bảng Arduino của bạn.
/*********
Rui Santos
Complete project details at http://randomnerdtutorials.com
Based on the Dallas Temperature Library example
*********/
#include<OneWire.h>
#include<DallasTemperature.h>
// Data wire is conntec to the Arduino digital pin 2
#defineONE_WIRE_BUS2
// Setup a oneWire instance to communicate with any OneWire devices
OneWireoneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperaturesensors(&oneWire);
voidsetup(void)
{
// Start serial communication for debugging purposes
Serial.begin(9600);
// Start up the library
sensors.begin();
}
voidloop(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);
}