Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Đây là hướng dẫn nhanh về cách lấy số sê-ri riêng của cảm biến nhiệt độ 1 dây DS18B20 của bạn.
Điều này rất tiện lợi cho các dự án yêu cầu nhiều cảm biến.
Những thứ bạn cần:
- Arduino 5v (UNO, Mega, Pro Mini, v.v.) - Arduino UNO R3 - AliExpress - eBay
- Cảm biến nhiệt độ DS18B20 - AliExpress - eBay
- Điện trở 4,7k - 1 / 4w THT - AliExpress - eBay
- Breadboard - AliExpress - eBay
- Jumper Wires - Male to Male - AliExpress - eBay
- Máy tính đã cài đặt Arduino IDE
Bước 1: Thêm Thư viện Bắt buộc vào Arduino IDE
- Mở Arduino IDE (Tôi đang sử dụng 1.8.1)
- Nhấp vào "Phác thảo" -> "Bao gồm Thư viện" -> "Quản lý Thư viện…"
- Chọn thanh tìm kiếm và nhập "dallas"
- Nhấp vào "DallasTempe Heat" và nhấp vào "Cài đặt"
Ngoài ra, bạn có thể tải xuống Thư viện từ đây:
Thư viện này bao gồm Thư viện trực tuyến.
Bước 2: Lên dây DS18B20
Sử dụng bảng mạch bánh mì kết nối + 5V, GND và Chân kỹ thuật số 2 (Chân 2 đã được đặt trong bản phác thảo ví dụ) từ Arduino bằng cách sử dụng các bộ chuyển tiếp trên bảng mạch từ Nam sang Nam.
Kết nối DS18B20 song song với các dải đầu cuối 3x trên breadboard.
- Chân 1 (GND) -> GND (Nối đất 0V)
- Chân 2 (DATA) -> Chân kỹ thuật số 2
- Chân 3 (Vdd) -> + 5V
Đối với Chế độ nguồn thông thường, hãy kết nối Điện trở 4,7K từ dây + 5V đến Chân số 2 trên bảng mạch.
Liên kết sau đây là nguồn tài liệu tuyệt vời về cảm biến nhiệt độ 1 dây DS18B20.
www.tweak4all.com/hardware/arduino/ardu…
Bước 3: Tải Sketch Ví dụ "Single"
Khi bạn đã có dây, bạn đã sẵn sàng tải SketchOpen Arduino IDE "Đơn" ở nhiệt độ Dallas (Tôi đang sử dụng 1.8.1) Nhấp vào "Tệp" -> "Ví dụ" -> "Nhiệt độ Dallas" -> "Đơn" tôi đã thêm chậm trễ (5000); trên dòng 103 để cho tôi thời gian sao chép số sê-ri Chọn biểu mẫu bảng thích hợp của bạn "Công cụ" -> "Bảng" Chọn cổng thích hợp của bạn "Công cụ" -> "Cổng" Bây giờ "Tải lên" Bản phác thảo "Phác thảo" -> "Tải lên" Nhấp vào "Công cụ" -> "Giám sát nối tiếp" đảm bảo tốc độ truyền khớp của tôi là 9600Nếu bạn phác thảo không tải lên, hãy kiểm tra Bo mạch, Cổng, trình điều khiển USB của bạn, v.v.
Bước 4: Sao chép số sê-ri
Từ "Serial Monitor", bạn sẽ thấy dòng thứ 4 là "Device 0 Address: xxxxxxxxxxxxxxxx"
Đây là số sê-ri của DS18B20
Nếu là "0000000000000000" thì đã xảy ra sự cố khi đọc DS18B20 của bạn.
Đánh dấu nó bằng chuột và nhấn CTRL + C trên bàn phím của bạn, sau đó dán nó vào Notepad
Đối với các dự án khác của tôi, mã của tôi sử dụng một mảng các số này. Tôi đã định dạng lại chuỗi HEX thành định dạng sau.
DeviceAddress tempSensorSerial [9] = {
{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x9817, 0x70, 0x42, 0x09817, 0x70, 0x0x17, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0x66, 0x71, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED}, {0x28x99, 0x42, 0x71, 0x17, 0x04, 0x4C}};
Bước 5: Hoàn thành
Giờ đây, bạn có thể xác định từng cảm biến nhiệt độ 1 dây DS18B20 riêng lẻ trong mã của mình và sử dụng một chức năng như sau:
float getTempe Heat (byte j) {
cảm biến.requestTempe Nhiệt độByAddress (tempSensorSerial [j]);
float tempC = sensor.getTempC (tempSensorSerial [j]);
trả về tempC;
}