DS18B20 Cảm Biến Nhiệt Độ đo nhiệt độ mới của hãng MAXIM với độ phân giải cao (12bit), cảm biến nhiệt độ IC sử dụng giao tiếp 1 dây rất gọn gàng, dễ lập trình và giao tiếp nhiều DS18B20 trên cùng 1 dây. IC còn có chức năng cảnh báo nhiệt độ khi vượt ngưỡng và đặc biệt hơn là có thể cấp nguồn từ chân data (parasite power). Để đo được nhiệt độ ta cần thêm 1 điện trở 4.7k Ohm nối từ chân DQ lên VCC.
Thông số kỹ thuật:
- Nguồn: 3 – 5.5V
- Dải đo nhiệt độ: -55 – 125 độ C ( -67 – 257 độ F)
- Sai số: +- 0.5 độ C khi đo ở dải -10 – 85 độ C
- Độ phân giải: người dùng có thể chọn từ 9 – 12 bits
- Chuẩn giao tiếp: 1-Wire (1 dây).
- Có cảnh báo nhiệt khi vượt ngưỡng cho phép và cấp nguồn từ chân data.
- Thời gian chuyển đổi nhiệt độ tối đa: 750ms ( khi chọn độ phân giải 12bit ).
- Mỗi IC có một mã riêng (lưu trên EEPROM của IC) nên có thể giao tiếp nhiều DS18B20 trên cùng 1 dây
Sơ đồ chân:
Code tham khảo Arduino:
//Include thư viện #include <OneWire.h> #include <DallasTemperature.h> // Chân nối với Arduino #define ONE_WIRE_BUS 2 //Thiết đặt thư viện onewire OneWire oneWire(ONE_WIRE_BUS); //Mình dùng thư viện DallasTemperature để đọc cho nhanh DallasTemperature sensors(&oneWire); void setup(void) { Serial.begin(9600); sensors.begin(); } void loop(void) { sensors.requestTemperatures(); Serial.print("Nhiet do"); Serial.println(sensors.getTempCByIndex(0)); // vì 1 ic nên dùng 0 //chờ 1 s rồi đọc để bạn kiệp thấy sự thay đổi delay(1000); }
Tài liệu tham khảo:
Video tham khảo: