DS18B20 là IC cảm biến nhiệt độ, chỉ bao gồm 3 chân nhỏ gọn, và chỉ có kích thước bằng một con transistor. Dòng IC cảm biến nhiệt độ này có thể đo nhiệt độ trong khoảng -55 -> +125°C, nên được ứng dụng công nghệ trong việc đo nhiệt độ ở các tủ lạnh, kho đông hoặc các lò sấy hoặc đơn giản hơn là chính trong những ngôi nhà của bạn. DS18B20 khá phổ biến và được ứng dụng nhiều trong thực tế nên nhóm em quyết định chọn đề tài “Đo nhiệt độ dùng IC DS18b20 hiển thị trên LCD”. 1.2 Mục tiêu nghiên cứu Mục đích trước hết là chúng em thực hiện đề tài này là để hoàn thành ĐỒ ÁN VI ĐIỀU KHIỂN. Ngoài ra, chúng em thực hiện đề tài này là muốn tìm hiểu và phát huy những thành quả ứng dụng của điện tử vào đời sống thực tế để giúp ích cho đất nước cũng như trang bị cho chúng em thêm kiến thức trước khi ra trường. Quá trình thực hiện đề tài là cơ hội để chúng em kiểm tra lại kiến thức đã học ở trường. Đồng thời là cơ hội để phát huy tính sáng tạo cũng như khả năng giải quyết vấn đề theo nhu cầu đã đặt ra. Và đây cũng là dịp để chúng em tích lũy kinh nghiệm để sau này khi ra trường không còn bỡ ngỡ và quen dần trong linh vực điện tử. 1.3 Phạm vi nghiên cứu Với đề tài này chúng em có thể giải quyết những vấn đề sau: - Lập trình trên board Arduino Atmega2560. - Lấy được nhiệt độ từ IC DS18B20. - Hiển thị giá trị nhiệt độ trên LCD. - Cài đặt timer để đếm thời gian phun sương. - Thiết kế nút nhấn cho việc cài đặt thời gian và nhiệt độ phun sương tùy vào nhu cầu của người sử dụng. 1.4 Kết quả đạt được - Thiết kế và thi công một board mạch hoàn chỉnh. - Biết và lập trình được giao tiếp 1 Wire của IC DS18B20 trên Arduino. - Cài đặt được timer/counter 1 giây. - Tiếp nhận được cách làm việc và trao đổi tốt khi làm theo nhóm.
Trang 1ĐỒ ÁN MÔN HỌC VI ĐIỀU KHIỂN
GVHD: Ths.NGÔ KIM LONG
Đồng Nai, 2019
Trang 3CHƯƠNG 1 MỞ ĐẦU
1.1 Lý do chọn đề tài
DS18B20 là IC cảm biến nhiệt độ, chỉ bao gồm 3 chân nhỏ gọn, và chỉ có kích thước bằng một con transistor Dòng IC cảm biến nhiệt độ này có thể đo nhiệt
độ trong khoảng -55 -> +125°C, nên được ứng dụng công nghệ trong việc đo nhiệt
độ ở các tủ lạnh, kho đông hoặc các lò sấy hoặc đơn giản hơn là chính trong những ngôi nhà của bạn
DS18B20 khá phổ biến và được ứng dụng nhiều trong thực tế nên nhóm em quyết định chọn đề tài “Đo nhiệt độ dùng IC DS18b20 hiển thị trên LCD”
1.2 Mục tiêu nghiên cứu
Mục đích trước hết là chúng em thực hiện đề tài này là để hoàn thành ĐỒ
ÁN VI ĐIỀU KHIỂN Ngoài ra, chúng em thực hiện đề tài này là muốn tìm hiểu vàphát huy những thành quả ứng dụng của điện tử vào đời sống thực tế để giúp íchcho đất nước cũng như trang bị cho chúng em thêm kiến thức trước khi ra trường
Quá trình thực hiện đề tài là cơ hội để chúng em kiểm tra lại kiến thức đã học
ở trường Đồng thời là cơ hội để phát huy tính sáng tạo cũng như khả năng giảiquyết vấn đề theo nhu cầu đã đặt ra Và đây cũng là dịp để chúng em tích lũy kinhnghiệm để sau này khi ra trường không còn bỡ ngỡ và quen dần trong linh vực điệntử
1.3 Phạm vi nghiên cứu
Với đề tài này chúng em có thể giải quyết những vấn đề sau:
- Lập trình trên board Arduino Atmega2560
- Lấy được nhiệt độ từ IC DS18B20
- Hiển thị giá trị nhiệt độ trên LCD
- Cài đặt timer để đếm thời gian phun sương
- Thiết kế nút nhấn cho việc cài đặt thời gian và nhiệt độ phun sương tùy vào nhu cầu của người sử dụng
Trang 41.4 Kết quả đạt được
- Thiết kế và thi công một board mạch hoàn chỉnh
- Biết và lập trình được giao tiếp 1 Wire của IC DS18B20 trên Arduino
- Cài đặt được timer/counter 1 giây
- Tiếp nhận được cách làm việc và trao đổi tốt khi làm theo nhóm
Trang 5CHƯƠNG 2 THIẾT KẾ VÀ TÍNH TOÁN 2.1 Phần cứng
• 16 chân vào analog (từ A0 đến A15)
Bảng 2.1 4 cổng Serial giao tiếp với phần cứng
CỔNG SERIAL CHÂN RX CHÂN TX
Trang 6• 1 nút reset.
2.1.1.2 Thông số kĩ thuật.
Bảng 2.2 Thông số kĩ thuật Atmega2560
Chip xử lý ATmega2560Điện áp hoạt động 5VĐiện áp vào (đề nghị) 7V-15VĐiện áp vào (giới hạn) 6V-20VCường độ dòng điện trên mỗi 3.3V pin 50 mACường độ dòng điện trên mỗi I/O pin 20 mA
Nếu cấu hình cho DS18B20 theo 9,10,11,12 bit thì ta có độ chính xác tương ứng
là : 0.5°C, 0.25°C ,0.125°C, 0.0625°C.(Theo mặc định của nhà sản xuất nếu chúng
ta không cấu hình chế độ chuyển đổi thì nó sẽ tự cấu hình là 12 bit)
DS18B20 hoạt động với điện áp từ 3V-5,5V ,có thể được cấp nguồn thông qua chân
DQ - chân trao đổi dữ liệu.DS18B20 có thể đo được nhiệt độ trong tầm 55 –
125°C với độ chính xác (+ - 0,5°C).Mỗi DS18B20 có một serial code 64 bit duy nhất, điều này cho phép kết nối nhiều IC trên cùng đương Bus
Trang 7Chuẩn 1 wire có đặc điểm sau:
• 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
• Ống thép không gỉ (chống ẩm, nước) đường kính 6mm, dài 50mm
• Đường kính đầu dò: 6mm
• Chiều dài dây: 1m
Trang 8tự và đặt tên như bên dưới:
Hình 2.3 Sơ đồ chân của LCD 2002.
2.1.3.2 Chức năng các chân
Bảng 2.3 chức năng các chân LCD
Chân số Tên Chức năng
1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này
với GND của mạch điều khiển
Trang 92 Vdd Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân
này với VCC=5V của mạch điều khiển
3 Vee Chân này dùng để điều chỉnh độ tương phản của LCD.
Chân chọn thanh ghi (Register select) Nối chân RS vớilogic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi + Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh
IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếmđịa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữliệu DR bên trong LCD
5 R/w
Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W vớilogic “0” để LCD hoạt động ở chế độ ghi, hoặc nối vớilogic “1” để LCD ở chế độ đọc
Chân cho phép (Enable) Sau khi các tín hiệu đượcđặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có
1 xung cho phép của chân E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyểnvào (chấp nhận) thanh ghi bên trong nó khi pháthiện một xung (high-to-low transition) của tín hiệuchân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB7 khi phát hiện cạnh lên (low-to-high transition)
DB0-ở chân E và được LCD giữ DB0-ở bus đến khi nào chân Exuống mức thấp
Trang 10- Thanh ghi DR: Thanh ghi DR dùng để chứa dữ liệu 8bit để ghi vào vùngRAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2vùng RAM này gởi ra cho MPU (ở chế độ đọc) Nghĩa là, khi MPU ghithông tin vào DR, mạch nội bên trong chíp sẽ tự động ghi thông tin này vàoDDRAM hoặc CGRAM Hoặc khi thông tin về địa chỉ được ghi vào IR, dữliệu ở địa chỉ này trong vùngRAM nội của HD44780 sẽ được chuyển ra DR
để truyền cho MPU Bằng cách điều khiển chân RS và R/W chúng ta có thểchuyển qua lại giữ 2 thanh ghi này khi giao tiếp với MPU Bảng sau đây tómtắt lại các thiết lập đối với hai chân RS và R/W theo mục đích giao tiếp
Bảng 2.4 Bảng thiết lập hai chân RS và RW.
0 0 Ghi vào thanh ghi RS để ra lệnh cho thanh ghi
0 1 Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở
Trang 11Hình 2.4 Hình dạng của nút nhấn 2 chân.
2.1.5 Khối điều khiển thiết bị ngoại vi Relay.
Sử dụng relay 5VDC để điều khiển động cơ phun sương
Hình 2.5 Hình dạng của relay 5VDC 2.1.6 Khối đèn Led.
Sử dụng đèn led để báo relay hoạt động
Trang 12Hình 2.6 Hình dạng Led đơn 2.2.1 Thống kê I/O, địa chỉ kết nối
Bảng 2.5: Số lượng Input của đề tài
STT TÊN INPUT ĐỊA CHỈ MÔ TẢ CHỨC NĂNG
1 Giao tiếp 1
wire ICDS18B20
PB7 Nhận dữ liệu từ IC DS18b20
2 Nút nhấn
Mode
PD0 Vào chế độ Cài đặt
3 Nút nhấn Up PD1 Tăng giá trị nhiệt độ phun sương hoặc
thời gian phun sương
4 Nút nhấn
Down PD2 Giảm giá trị nhiệt độ phun sương hoặcthời gian phun sương
Bảng 2.6: Số lượng Output của đề tài
STT TÊN OUTPUT ĐỊA CHỈ MÔ TẢ CHỨC NĂNG
1 Relay PE3 Điều khiển động cơ phun sương
2 Led xanh PE5 Báo relay chạy
5 Chân (E) của
LCD PF2 Cho phép ghi vào LCD.
Trang 142.2.3 Sơ đồ kết nối tổng thể
Hình 2.8 Sơ đồ nguyên lý
Trang 15T TÊN TÁC VỤ TÊN BIẾN (NẾU CÓ) MÔ TẢ
1 vao_menu Tăng biến dem lên 1 đơn vị,
xóa màn hình và hiển thị bướcsetting, gán biến start bằng 0
Trang 163 set_phut Tăng giảm giá trị phút, hiển thị
trên LCD và gán biến set chobiến đếm phút
4 set_giay Tăng giảm giá trị giây, hiển thị
trên LCD và gán biến set chobiến đếm giây
5 set_nhiet_do Tăng giảm giá trị nhiệt độ, hiển
thị trên LCD
6 hoan_tat Hiển thị hoàn tất và tăng giá trị
start lên 1 khi đã set phút và setnhiệt độ
7 gan_gia_tri Gán lại giá trị đếm giây và đếm
phút cho giá trị đã set
8 phun_suong Hiển thị nhiệt độ thực, bật
timer1, bật relay Nếu thời gianset về 0 hoặc nhấn nút khẩncấp thì tắt timer và tắt relay
9 timer1_ovf_isr Ngắt tràn thời gian 1s
2.3.2 Code _Lưu đồ giải thuật :
Tác vụ 1:
Code tác vụ void timer1_ovf_isr Lưu đồ giải thuật của tác vụ void
timer1_ovf_isr
Trang 17interrupt [TIM1_OVF] void
Trang 18{ketqua = ds18b20_temperature
Trang 23gan_gia_tri()void gan_gia_tri()
Trang 26CHƯƠNG 3 THI CÔNG 3.1 Sản Phẩm hoàn thiện
Hình 3.1 Mặt trước của sản phẩm.
Trang 27Hình 3.2 Mặt sau của sản phẩm.
Sản phẩm này có chức năng như:
- Đọc nhiệt độ thực hiển thị lên LCD
- Set thời gian phun sương theo nhu cầu của người dùng
- Set nhiệt độ phun sương theo nhu cầu của người dùng
- Có relay để điều khiển các loại động cơ phun sương khác nhau
- Tự động ngắt khi thời gian set đã hết
- Có thể phun sương nhiều lần trong ngày
- Có nút nhấn ngắt phung sương theo nhu cầu của người dùng
3.2 Thuận lợi – Khó khăn trong quá trình thực hiện
3.2.1 Kết quả
Sau khi hoàn thành sản phẩm này chúng em có thể:
- Sử dụng codevision thành thạo
- Biết đến chuẩn giao tiếp One wire
- Giao tiếp với IC DS18B20
Trang 28- Biết làm ra 1 board mạch điện hoàn chỉnh.
Hình 3.3 Công đoạn rửa board.
3.2.2 Điểm mạnh và yếu của sản phẩm.
Nêu điểm mạnh và điểm yếu của sản phẩm và đề phương hướng khắc phục
Trang 29http://thutemplate2115.blogspot.com/2015/08/d.html
hocavr.com
giáo trình ngôn ngữ lập trình C: thầy Đỗ Bình Nguyên
giáo trình IO_basic: thầy Đỗ Bình Nguyên
http://hocdientu.vn/threads/bai-4-do-nhiet-do-su-dung-ds18b20-tren-avr.78/page-3
Trang 30Bảng 2.2 Thông số kĩ thuật Atmega2560 4
Bảng 2.3 chức năng các chân LCD 6
Bảng 2.4 Bảng thiết lập hai chân RS và RW 8
Bảng 2.5 Số lượng Input của đề tài 10
Bảng 2.6 Số lượng Output của đề tài 10
Bảng 2.7 Thống kê số tác vụ thực hiện 13
Trang 31Hình 2.4 Hình dạng của nút nhấn 2 chân 9
Hình 2.5 Hình dạng của relay 5VDC 9
Hình 2.6 Hình dạng Led đơn 10
Hình 2.7 Sơ đồ khối của sản phẩm 12
Hình 2.8 Sơ đồ nguyên lý 12
Hình 2.9 Sơ đồ mạch in 13
Hình 3.1 Mặt trước của sản phẩm 24
Hình 3.1 Mặt sau của sản phẩm 25
Hình 3.3 Công đoạn rửa board 26