Đo Nhiệt độ Dùng Cảm Biến DS18B20 Với 8051
Có thể bạn quan tâm
1. Giới thiệu cảm biến nhiệt độ DS18B20
DS18B20 là cảm biến nhiệt độ kỹ thuật số giao tiếp 1-Wire (1 dây duy nhất), bên trong IC được tích hợp sẵn cảm biến nhiệt và bộ chuyển đổi, khối xử lý, giao tiếp 1 wire, bộ nhớ ROM, EEPROM, báo thức nhiệt độ khi đạt ngưỡng...
Thông số của cảm biến:
- Giải đo: -55 đến +125 độ C (sai số 0.5 độ C trong điều kiện -10 to +85 độ C)
- Nguồn cung cấp: 3 - 5.5V
- Độ phân giải: 9bit, 12bit
- Môi trường làm việc: Mọi môi trường nếu có vỏ bảo vệ tốt.
Cảm biến DS18B20 cho phép bạn kết nối nhiều cảm biến trên một đường dây DATA (DQ) và nó cho phép kết nối ít nhất là 2 dây DQ và GND không cần cấp VCC, lúc này chân VCC nối tắt sang GND, như vậy thì làm sao cấp nguồn được cho cảm biến hoạt động ??? Để cấp nguồn thì cảm biến được thiết kế có thể lấy trực tiếp áp từ dây tín hiệu DQ để duy trì hoạt động (xem mạch trong datasheet).
Trong bài này ta chỉ xét xem làm thế nào để giao tiếp được với cảm biến, còn các bạn muốn tìm hiểu kỹ hơn thì vui lòng đọc datasheet gửi kèm trong đính kèm.
2. Sơ đồ chân và các kiểu đóng vỏ:
3. Lập trình giao tiếp:
/****************Chương trình giao tiếp IC DS18B20***************************/void delay_18B20(unsigned int ti){ //delay us while(ti--);}void Init_18B20(void){ //Khởi tạo cảm biến DQ = 1; delay_18B20(8); DQ = 0; delay_18B20(65); DQ = 1; delay_18B20(20); }unsigned char ReadOneChar(void){ //Đọc 1 byte từ IC unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--){ DQ = 0; dat>>=1; DQ = 1; if(DQ) dat |= 0x80; delay_18B20(4); } return(dat);}void WriteOneChar(unsigned char dat){ //Ghi một byte vào IC unsigned char i=0; for (i=8; i>0; i--){ DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat>>=1; }}void ReadTemperature(void){ //Hàm đọc nhiệt độ lưu vào biến temp unsigned char a=0; unsigned char b=0; //EA=0; //Nếu có ngắt thì cấm ngắt để tránh ảnh hưởng quá trình giao tiếp Init_18B20(); WriteOneChar(0xCC); // Bỏ qua ROM WriteOneChar(0x44); delay_18B20(10); Init_18B20(); WriteOneChar(0xCC); WriteOneChar(0xBE); //Đọc nhiệt độ delay_18B20(10); a=ReadOneChar(); //Read temp low value b=ReadOneChar(); //Read temp high value temp=((b*256+a)>>4); //Giá trị nhiệt độ lưu vào biến temp //EA=1; //Đọc xong thì cho phép ngắt}//End code DS18B20
4. Mô phỏng giao tiếp với cảm biến
* Các bạn tải code đầy đủ và mô phỏng về trong File đính kèm....
Chúc các bạn học tốt...!
Tải về đính kèm: Do_nhiet_do_DS18B20_8051.zipKích thước: 517.33 KBTừ khóa » Sơ đồ Chân Ds18b20
-
IC Cảm Biến Nhiệt Độ DS18B20 - ĐIỆN TỬ TƯƠNG LAI
-
[PDF] Cơ Bản Về DS18B20
-
Cảm Biến Nhiệt độ DS18B20 - Blog Mecsu
-
Cơ Bản Về DS18B20 - Hội Quán Điện Tử
-
Đo Nhiệt độ Từ Cảm Biến DS18B20 | VBLUno51 Board - VNGIoTLab!
-
Cảm Biến Nhiệt độ DS18B20 Dây Mềm - Nshop
-
Hướng Dẫn Sử Dụng DS18B20 Cảm Biến Nhiệt độ Với Arduino
-
Cảm Biến Nhiệt độ DS18B20
-
[PDF] Cảm Biến Nhiệt độ Ds18b20
-
DS18B20: Cảm Biến Nhiệt độ Chất Lỏng | Phần Cứng Miễn Phí
-
IC Cảm Biến Nhiệt độ DS18B20 - Linh Kiện 888
-
IC Cảm Biến Nhiệt Độ DS18B20 - Chickgolden
-
Cảm Biến Nhiệt Độ DS18B20 - Linh Kiện Cầu Giấy