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.
ĐẠI HỌC LẠC HỒNG KHOA CƠ ĐIỆN ĐIỆN TỬ - ĐỒ ÁN MÔN HỌC VI ĐIỀU KHIỂN Đề Tài: ĐO NHIỆT ĐỘ DÙNG IC DS18B20 HIỂN THỊ TRÊN LCD SVTH: ĐỖ BẢO CHÍNH TRẦN VĂN ĐƯỢC ĐÀO THÁI HUY LỚP: 16CD111 GVHD: Ths.NGÔ KIM LONG Đồng Nai, 2019 CHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU 1.1 Lý chọn đề tài DS18B20 IC cảm biến nhiệt độ, bao gồm chân nhỏ gọn, có kích thước transistor Dịng IC cảm biến nhiệt độ đo nhiệt độ khoảng -55 -> +125°C, nên ứng dụng công nghệ việc đo nhiệt độ tủ lạnh, kho đông lị sấy đơn giản nhà bạn DS18B20 phổ biến ứng dụng nhiều thực tế nên nhóm em định chọn đề tài “Đo nhiệt độ dùng IC DS18b20 hiển thị LCD” 1.2 Mục tiêu nghiên cứu Mục đích trước hết chúng em thực đề tài để hoàn thành ĐỒ ÁN VI ĐIỀU KHIỂN Ngoài ra, chúng em thực đề tài muốn tìm hiểu phát huy thành ứng dụng điện tử vào đời sống thực tế để giúp ích cho đất nước trang bị cho chúng em thêm kiến thức trước trường Quá trình thực đề tài hội để chúng em kiểm tra lại kiến thức học trường Đồng thời hội để phát huy tính sáng tạo khả giải vấn đề theo nhu cầu đặt Và dịp để chúng em tích lũy kinh nghiệm để sau trường khơng cịn bỡ ngỡ quen dần linh vực điện tử 1.3 Phạm vi nghiên cứu Với đề tài chúng em giải vấn đề sau: - Lập trình board Arduino Atmega2560 - Lấy nhiệt độ từ IC DS18B20 - Hiển thị giá trị nhiệt độ 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 nhiệt độ phun sương tùy vào nhu cầu người sử dụng CHƯƠNG MỞ ĐẦU 1.4 Kết đạt - Thiết kế thi công board mạch hồn chỉnh Biết lập trình giao tiếp Wire IC DS18B20 Arduino Cài đặt timer/counter giây Tiếp nhận cách làm việc trao đổi tốt làm theo nhóm CHƯƠNG THIẾT KẾ VÀ TÍNH TỐN CHƯƠNG THIẾT KẾ VÀ TÍNH TỐN 2.1 Phần cứng 2.1.1 Arduino Atmega2560 2.1.1.1 Giới thiệu Arduino Mega 2560 vi điều khiển hoạt động dựa chip ATmega2560 Bao gồm: • 54 chân digital (trong có 15 chân sủ dụng chân PWM từ chân số → 13 chân 44 45 46) • ngắt ngoài: chân (interrupt 0), chân (interrupt 1), chân 18 (interrupt 5), chân 19 (interrupt 4), chân 20 (interrupt 3), and chân 21 (interrupt 2) • 16 chân vào analog (từ A0 đến A15) Bảng 2.1 cổng Serial giao tiếp với phần cứng CỔNG SERIAL CHÂN RX CHÂN TX Cổng 0 Cổng 19 18 Cổng 17 16 Cổng 15 14 • thạch anh với tần số dao động 16 MHz • cổng kết nối USB • jack cắm điện • đầu ICSP CHƯƠNG THIẾT KẾ VÀ TÍNH TỐN • 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-20V Cường độ dòng điện 3.3V pin 50 mA Cường độ dòng điện I/O pin 20 mA Flash Memory 256 KB SRAM KB EEPROM KB Clock Speed 16 MHz 2.1.2 Khối cảm biến nhiệt độ 2.1.2.1 Giới thiệu DS18B20 nhiệt kế số có độ phân giải – 12 bit giao tiếp với điều khiển trung tâm thông qua dây (1 wire communication) Nếu cấu hình cho DS18B20 theo 9,10,11,12 bit ta có độ xác tương ứng : 0.5°C, 0.25°C ,0.125°C, 0.0625°C.(Theo mặc định nhà sản xuất khơng cấu hình chế độ chuyển đổi tự cấu hình 12 bit) DS18B20 hoạt động với điện áp từ 3V-5,5V ,có thể cấp nguồn thông qua chân DQ - chân trao đổi liệu.DS18B20 đo nhiệt độ tầm 55 – 125°C với độ xác (+ - 0,5°C).Mỗi DS18B20 có serial code 64 bit nhất, điều cho phép kết nối nhiều IC đương Bus CHƯƠNG THIẾT KẾ VÀ TÍNH TỐN Chuẩn wire có đặc điểm sau: -Chỉ có master hệ thống -Gía thành thấp -Tốc độ đạt tối đa 16kbps -Khoảng cách truyền xa 300m -Lượng thơng tin trao đổi nhỏ Hình 2.1 Cấu tạo DS18b20 2.1.2.2 Thơng số kĩ thuật • Nguồn: - 5.5V • Dải đo nhiệt độ: -55 - 125 độ C ( -67 - 257 độ F) • Sai số: +- 0.5 độ C đo dải -10 - 85 độ C • Độ phân giải: người dùng chọn từ - 12 bits • Chuẩn giao tiếp: 1-Wire (1 dây) • Có cảnh báo nhiệt vượt ngưỡng cho phép 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ã riêng (lưu EEPROM IC) nên giao tiếp nhiều DS18B20 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 CHƯƠNG THIẾT KẾ VÀ TÍNH TỐN 2.1.3 Khối hiển thị LCD 2.1.3.1 Hình dáng kích thước LCD 16x02 Có nhiều loại LCD với nhiều hình dáng kích thước khác nhau, hình loại LCD thơng dụng Hình 2.2 Hình dáng LCD Khi sản xuất LCD, nhà sản xuất tích hợp chíp điều khiển (HD44780) bên lớp vỏ đưa chân giao tiếp cần thiết Các chân đánh số thứ tự đặt tên bên dưới: Hình 2.3 Sơ đồ chân LCD 2002 2.1.3.2 Chức chân Bảng 2.3 chức chân LCD Chân số Tên Vss Chức Chân nối đất cho LCD, thiết kế mạch ta nối chân với GND mạch điều khiển CHƯƠNG THIẾT KẾ VÀ TÍNH TOÁN Vdd Vee Chân cấp nguồn cho LCD, thiết kế mạch ta nối chân với VCC=5V mạch điều khiển Chân dùng để điều chỉnh độ tương phản LCD Chân chọn ghi (Register select) Nối chân RS với logic “0” (GND) logic “1” (VCC) để chọn ghi + Logic “0”: Bus DB0-DB7 nối với ghi lệnh Rs IR LCD (ở chế độ “ghi” - write) nối với đếm địa LCD (ở chế độ “đọc” - read) + Logic “1”: Bus DB0-DB7 nối với ghi liệu DR bên LCD Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với R/w logic “0” để LCD hoạt động chế độ ghi, nối với logic “1” để LCD chế độ đọc Chân cho phép (Enable) Sau tín hiệu đặt lên bus DB0-DB7, lệnh chấp nhận có xung cho phép chân E + Ở chế độ ghi: Dữ liệu bus LCD chuyển vào (chấp nhận) ghi bên phát E xung (high-to-low transition) tín hiệu chân E + Ở chế độ đọc: Dữ liệu LCD xuất DB0DB7 phát cạnh lên (low-to-high transition) chân E LCD giữ bus đến chân E xuống mức thấp Tám đường bus liệu dùng để trao đổi thơng tin 7-14 DB0DB7 với MPU Có chế độ sử dụng đường bus này: + Chế độ bit Dữ liệu truyền đường, với bit MSB bit DB7 + Chế độ bit: Dữ liệu truyền đường từ DB4 tới DB7, bit MSB DB7 CHƯƠNG THIẾT KẾ VÀ TÍNH TỐN 2.1.3.3 Các ghi - Chip HD44780 có ghi bit quan trọng: Thanh ghi lệnh IR (Instructor - Register) ghi liệu DR (Data Register) Thanh ghi IR: Để điều khiển LCD, người dùng phải “ra lệnh” thông qua tám đường bus DB0-DB7 Mỗi lệnh nhà sản xuất LCD đánh địa rõ ràng Người dùng việc cung cấp địa lệnh cách nạp vào ghi IR Nghĩa là, ta nạp vào ghi IR chuỗi bit, chíp HD44780 tra - bảng mã lệnh địa mà IR cung cấp thực lệnh Thanh ghi DR: Thanh ghi DR dùng để chứa liệu 8bit để ghi vào vùng RAM DDRAM CGRAM (ở chế độ ghi) dùng để chứa liệu từ vùng RAM gởi cho MPU (ở chế độ đọc) Nghĩa là, MPU ghi thông tin vào DR, mạch nội bên chíp tự động ghi thơng tin vào DDRAM CGRAM Hoặc thông tin địa ghi vào IR, liệu địa vùng RAM nội HD44780 chuyển DR để truyền cho MPU Bằng cách điều khiển chân RS R/W chuyển qua lại giữ ghi giao tiếp với MPU Bảng sau tóm tắt lại thiết lập hai chân RS R/W theo mục đích giao tiếp RS 0 Bảng 2.4 Bảng thiết lập hai chân RS RW R/W Khi cần Ghi vào ghi RS để lệnh cho ghi Đọc cờ bận DB7 giá trị đếm địa DB0- 1 2.1.4 Khối nút nhấn DB6 Ghi vào ghi DR Đọc liệu từ DR Sử dụng nút nhấn chân để điều chỉnh thời gian phun sương, đặt nhiệt độ hiển thị thông tin cảm biến nhiệt độ 10 CHƯƠNG THIẾT KẾ VÀ TÍNH TỐN Tác vụ 4: Code tác vụ set_phut() void set_phut() { if (PIND.1 == 0) { setphut++; delay_ms(250); if (setphut >= 180){setphut = 0;}} if (PIND.2 == 0) {setphut ;delay_ms(250);if (setphut >= 180){setphut = 179;}} lcd_printfxy(4,0,"CAI DAT\n PHUT : %u%u:%u%u ", setphut/10, setphut%10, setgiay/10,setgiay%10); phut = setphut; } Lưu đồ giải thuật tác vụ set_phut() 19 CHƯƠNG THIẾT KẾ VÀ TÍNH TOÁN Tác vụ 5: Code tác vụ set_giay() void set_giay() { if (PIND.1 == 0){setgiay+ +;delay_ms(250);if (setgiay >= 60){setgiay = 0;}} if (PIND.2 == 0) {setgiay ;delay_ms(250);if (setgiay >= 60){ setgiay = 59;}} lcd_printfxy(4,0,"CAI DAT\n GIAY : %u%u:%u%u ", setphut/10,setphut%10, setgiay/10,setgiay%10); giay = setgiay; } Lưu đồ giải thuật tác vụ set_giay() Tác vụ 6: Code tác vụ set_nhiet_do() Lưu đồ giải thuật tác vụ set_nhiet_do() 20 CHƯƠNG THIẾT KẾ VÀ TÍNH TỐN void set_nhiet_do() { if (PIND.1 == 0){ nhietdo_phunsuong++; delay_ms(250);if ( nhietdo_phunsuong >= 86) {nhietdo_phunsuong = 0;}} if (PIND.2 == 0) {nhietdo_phunsuong ;d elay_ms(250);if ( nhietdo_phunsuong >= 86){nhietdo_phunsuong = 85;}} lcd_printfxy (4,0," CAI DAT\nNHIET DO : %u\xdf""C ", nhietdo_phunsuong); } Tác vụ 7: Code tác vụ hoan_tat() Lưu đồ giải thuật tác vụ hoan_tat() 21 CHƯƠNG THIẾT KẾ VÀ TÍNH TỐN void hoan_tat() { lcd_printfxy(4,0,"CAI DAT"); for (i=0;i