[HỌC AVR] BÀI 8: GIAO TIẾP CẢM BIẾN NHIỆT ĐỘ DS18B20

0
1609

[HỌC AVR] BÀI 8: GIAO TIẾP CẢM BIẾN NHIỆT ĐỘ DS18B20

Chú ý : Source code bài viết dưới đây được biên dịch bằng phần mềm CodeVisionAVR để biên dịch code không lỗi xin vui lòng Download bảnCodeVisionAVR Tại Đây

Xin chào các bạn!
Trong bài viết này, mình sẽ hướng dẫn các bạn lập trình đo nhiệt độ môi trường sử dụng cảm biến nhiệt độ DS18B20, nhiệt độ được hiển thị lên LCD16x2 với Atmega16. Project chạy trên KIT AVR V4.
I.SƠ ĐỒ PHẦN CỨNG
Trên KIT AVR V4 hỗ trợ các bạn khối DS18B20 có sơ đồ như sau:

Trong đó, chân dữ liệu của DS18B20 được kết nối với PORTD_7 của Atmega16.
Đặc điểm kỹ thuật của DS18B20:

-Sử dụng chuẩn giao tiếp 1 WIRE:​
ØNhiều cảm biến có thể kết nối vào cùng 1 dây dữ liệu (chiều dài tối đa khoảng 300m).​
ØKhông hạn chế số lượng cảm biến kết nối.​
-Có thể cấp nguồn nuôi bằng đường dữ liệu, điện áp nguồn nuôi trong khoảng 3.0V – 5.5V.​
-Dải nhiệt độ đo được -55oC – 125oC ( chính xác đến 0.5oC trong dải -10oC – 85oC).​
-Có thể cài đặt độ phân giải khi đo bằng phần mềm: 9 bit, 10 bit, 11 bit, 12 bit (độ chính xác của nhiệt độ đo được tương ứng: 0.5, 0.25, 0.125, 0.0625).​
-Có cờ báo khi nhiệt độ đo được nằm ngoài khoảng giá trị nhiệt độ cài đặt.​
-Mỗi cảm biến có một mã định danh 64bit duy nhất chứa trong bộ nhớ ROM.​

II.LẬP TRÌNH PHẦN MỀM
Các bạn cấu hình GPIO:

PORTC3:5 (các chân điều khiển LCD16x2), PORTB4:7 (các chân dữ liệu LCD16x2) là OUTPUT với mức điện áp đầu ra ban đầu là mức 1.​
PORTD7 là INPUT có trở kéo lên bên trong.​

Hàm DS18B20_Config(15,40,DS18B20_9BIT_RES): Đây là hàm cấu hình trước khi đo cho DS18B20 (giá trị nhiệt độ ngường, độ phân giải khi đo) trong File ds18b20 thuộc Folder User:

Các bạn sử dụng các hàm float DS18B20_ReadTemp(void) trong File ds18b20 thuộc Folder Userđể đo nhiệt độ môi trường:

Thực hiện chương trình chính:

 

Link dowload File Code của chương trình TẠI ĐÂY :

 

 

 

 

Trao đổi học tập

Comments