Đã được đăng vào 03/04/2021 @ 10:13
I. GIỚI THIỆU
Mục lục
hiện
Lại quay về vấn đề đo nhiệt độ, lần này mình đang sử dụng con DS18B20 này và cảm thấy khá ổn.
Nhiệt độ ít bị chênh lệch hơn và như quảng cáo là chỉ có sai số ±0.5°C thôi (nếu nhiệt độ trong phạm vi -10°C to +85°C, đáng để thử phải không nào?
Về căn bản, con này dùng cơ chế truyền tín hiệu 1-Wire. Nôm na với cái chơ chế này, chúng ta có thể chơi (đọc) nhiều con DS18B20 cùng một lúc trên cùng 1 dây, đã thật phải không nào?
Cùng điểm qua các đặc điểm đặc biệt của hắn nhé.
Xem thêm:
- Nhiệt điện trở là gì? Chúng được phân thành bao nhiêu loại?
- Đo nhiệt độ bằng Cảm biến LM35 sử dụng Arduino Uno
- Đọc nhiệt độ, độ ẩm (DHT11) sử dụng Arduino Uno
- Arduino cơ bản 07: Cảnh báo nhiệt độ (LM35) bằng còi báo sử dụng Arduino Uno
Đặc điểm nổi bật:
- Sử dụng một chân data với 64bit serial code cho phép chúng ta dùng nhiều con trên cùng 1 chân digial (cơ chế 1-Wire)
- Có thể cấp nguồn từ 3 – 5.5V
- Đo từ -55°C đến +125°C sai số ±0.5°C nếu đang trong khoản -10°C đến +85°C
- Datasheet-ds18b20
II. Chuẩn bị
- Arduino UNO
- Breadboard
- Dây cắm breadboard
- 1 cảm biến DS18B20
- Điện trở 4.7kOhm
III. Sơ đồ nguyên lý
IV. CODE
Các bạn cài thư viện sau để sử dụng được cảm biến này:
//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); }
Trả lời