Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
1,23 MB
Nội dung
lOMoARcPSD|17343589 BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỀU KHIỂN VÀ TỰ ĐỘNG HĨA ĐỒ ÁN MƠN HỌC VI XỬ LÝ TRONG ĐO LƯỜNG VÀ ĐIỀU KHIỂN Đề tài: MƠ HÌNH NHÀ THƠNG MINHĐIỀU KHIỂN CỬA, ĐÈN VÀ QUẠT SỬ DỤNG VI ĐIỀU KHIỂN Giảng viên hướng dẫn : TS Đoàn Thị Hương Giang Sinh viên thực hiện: Tạ Tiến Đạt – MSV: 19810000125 Đỗ Như Công – MSV: 19810000304 Trịnh Mai Doanh – MSV: 19810000006 Quách Đăng Lộc – MSV: 19810000229 Lớp : D14THDK&TDH Hà Nội, tháng 120 năm 20212 lOMoARcPSD|17343589 MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN Đánh giá nhận xét GV hướng dẫn CHƯƠNG 1: ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ ĐỒ ÁN 1.1 Giới thiệu đề tài 1.2 Mục đích thiết kế 1.3 Phạm vi thiết kế 1.4 Nhiệm vụ CHƯƠNG II: TỔNG QUAN VỀ LINH KIỆN SỬ DỤNG 2.1 Board Arduino Uno R3 2.2 Keypad 4*4 2.3 Màn hình LCD 16*2 2.4 Một số linh kiện khác dùng đề tài 11 CHƯƠNG III: THIẾT KẾ HỆ THỐNG 12 3.1 Sơ đồ khối 12 3.2 Khối nguồn nuôi 12 3.2.1 Nguồn cấp cho mạch điều khiển: 12 3.2.2 Nguồn nuôi động DC .13 3.3 Khối nút điều khiển .13 3.4 Khối hiển thị thông báo trạng thái .13 3.5 Sơ đồ nguyên lý hệ thống 14 3.6 Nguyên lý hoạt động 14 3.7 Mô tả hoạt động hệ thống 14 3.8 Hình ảnh thực tế hệ thống 15 CHƯƠNG IV: LƯU ĐỒ THUẬT TỐN VÀ LẬP TRÌNH 16 4.1 Lưu đồ thuật toán hệ thống 16 4.2 Chương trình điều khiển 17 TÀI LIỆU THAM KHẢO .27 Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 LỜI MỞ ĐẦU Như biết kỹ thuật vi điều khiển trở nên quen thuộc ngành kỹ thuật dân dụng Các vi điều khiển có khả xử lý nhiều hoạt động phức tạp mà cần chip vi mạch nhỏ, thay tủ điều khiển lớn phức tạp mạch điện gọn nhẹ, dễ dàng thao tác sử dụng Vi điều khiển khơng góp phần vào phát triển kỹ thuật điều khiển mà cịn góp phần to lớn vào việc phát triển thơng tinvà tự động hóa Chính lý trên, việc tìm hiểu, khảo sát vi điều khiển điều mà sinh viên ngành điện phải quan tâm Đó nhu cầu cần thiết cấp bách sinh viên, đề tài thực đáp ứng nhu cầu Mặc dù vi điều khiển bước dài để tiếp cận với kỹ thuật việc có sớm chiều Để tìm hiểu chi tiết vi điều khiển cách khoa học mang lại hiệu cao làm tảng cho việc xâm nhập vào hệ thống tối tân hơnvà ứng dụng thực tế Việc trang bị kiến thức vi điều khiển cho sinh viên cần thiết Xuất phát từ thực tiển này, nhóm chúng em đến địnhchọn đề tài điều khiển cửa, đèn quạt sử dụng vi điều khiển Thiết kế mơ hình nhà thông minh nhằm đáp ứng nhu cầu ham muốn học hỏi thân giúp cho bạn sinh viên dễ tiếp cận hiểu sâu vi điều khiển Tuy nhiên, thời gian có hạn kiến thức chun mơn cịn hạn chế nên q trình thực đồ án khơng thể tránh thiếu sót định Vì vậy, chúng em mong giúp đỡ, ý kiến đóng góp thầy tất bạn để đồ án hoàn thiện Chúng em chân thành cảm ơn! Hà Nội, ngày tháng năm 2022 Nhóm Sinh Viên lOMoARcPSD|17343589 LỜI CẢM ƠN Lời chúng em xin gửi lời cảm ơn đến TS.Đồn Thị Hương Giang Cơ hướng dẫn giúp đỡ tận tình chúng em nghiên cứu hoàn thành tốt đồ án Những lời nhận xét góp ý hướng dẫn thầy giúp chúng em có định hướng đắn trình thực đồ án, giúp chúng em nhìn ưu khuyết điểm đồ án bước khắc phục để có kết tốt Chúng em xin cảm ơn thầy cô khoa Điều Khiển Tự Động Hóa, mơn Vi Xử Lý Đo Lường Điều Khiển tận tình bảo, truyền đạt cho chúng em kiến thức chuyên ngành, cơng nghệ cách làm việc nhóm đề hồn thành tốt đồ án mơn học Hà Nội, tháng 12 năm 2022 lOMoARcPSD|17343589 Đánh giá nhận xét GV hướng dẫn Giảng viên hướng dẫn lOMoARcPSD|17343589 CHƯƠNG 1: ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ ĐỒ ÁN 1.1 Giới thiệu đề tài - Ngày nay, với bùng nổ nghành kĩ thuật làm cho đời sống người ngày hồn thiện Các thiết bị tự động hóa vào sản xuất hàng hóa sinh hoạt ngày người Việc thiết kế mơ hình hệ thống nhà thông minh phục vụ đời sống cần thiết - Giờ thay việc đến cơng tắc đèn,… để bật tắt trước đây, với giải pháp nhà thơng minh hồn tồn điều khiển tất bóng đèn nhà với cú chạm nhẹ vào hình 1.2 Mục đích thiết kế - Từ kiến thức ta học lý thuyết, từ nâng cao tính vận dụng vào khâu thiết kế để có sản phẩm tốt chất lượng - Cải tiến công nghệ, tiết kiệm lượng khơng thời gian đóng ngắt - Thiết kế điều khiển phù hợp với công suất với thiết bị phòng - Tạo mơ hình cửa tự động, sử dụng hệ thống nhúng dùng vi điều khiển - Có khả hoạt động tự động, mở cửa nhập mật (Password) 1.3 Phạm vi thiết kế - Mô hệ thống nhà thông minh tảng Arduino - Kết hợp với IOT để điều khiển hệ thống 1.4 Nhiệm vụ - Tìm hiểu vi điều khiển Arduino, thiết cần thiết kết nối với Arduino - Tìm hiểu động điều khiển led chiếu sáng - Mô phần mềm ứng dụng Proteus - Thiết kế Board Mạch Arduino Uno R3 SMD lOMoARcPSD|17343589 CHƯƠNG II: TỔNG QUAN VỀ LINH KIỆN SỬ DỤNG 2.1 Board Arduino Uno R3 Hình 1: Cấu tạo board Arduino Uno R3 Thông số kỹ thuật: ● Vi điều khiển ATmega 328 bit lOMoARcPSD|17343589 ● Điện áp hoạt động 5V DC (chỉ cấp qua cổng USB) ● Tần số hoạt động 16 MHz ● Dòng tiêu thụ ~30mA ● Điện áp vào khuyên dùng - 12 VDC ● Điện áp vào giới hạn - 20 VDC ● Số chân Digital I/O 14 (6 chân Hardware PWM) ● Số chân Analog (10 bit) ● Dòng tối đa chân I/O 30 mA ● Dòng tối đa (5V) 500 mA ● Dòng tối đa (3.3V) 50 mA ● Bộ nhớ flash 32 KB (ATmega 328) với 0.5 KB dùng Bootloader ● SRAM KB (ATmega 328) ● EEPROM KB (ATmega 328) Sử dụng Arduino Uno R3: - Chân chân 1: chân TX, RX chân dùng chân I/O bình thường thực tế dùng để trống cho chức uart - Chân PWM: 3, 5, 9, 10, 11: Cho phép xuất xung PWM với độ phân giải bit - Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): dùng giao tiếp SPI - Chân 13: kết nối với Led (ký hiệu chữ L Board), người dùng dùng chân để điều khiển Led Không nên dùng chân để điều khiển thiết bị ngoại vi Vì mở nguồn ootloader làm cho chân 13 chớp chớp nên ảnh hưởng đến thiết bị điều khiển - Chân A0-> A5: chân đọc ADC (độ phân giải 10 bit) - Chân A4 (SDA), A5(SCL): dùng giao tiếp I2C - Tất chân kể sử dụng chức I/O (ngõ vào/ra) bình thường lOMoARcPSD|17343589 2.2 Keypad 4*4 Hình 2: Cấu tạo Keypad 4*4 Thơng số kỹ thuật: Module bàn phím ma trận 4x4 loại phím mềm Độ dài cáp: 88mm Nhiệt độ hoạt động ~ 70oC Đầu nối chân Kích thước bàn phím 77 x 69 mm 2.3 Màn hình LCD 16*2 Hình 23:Cấu tạo hình LCD 16*2 - Thơng số kỹ thuật: lOMoARcPSD|17343589 ● LCD 16×2 có 16 chân chân liệu (D0 – D7) chân điều khiển (RS, RW, EN) ● chân lại dùng để cấp nguồn đèn cho LCD 16×2 ● Các chân điều khiển giúp ta dễ dàng cấu hình LCD chế độ lệnh chế độ liệu ● Chúng cịn giúp ta cấu hình chế độ đọc ghi ● LCD 16×2 sử dụng chế độ bit bit tùy theo ứng dụng ta làm - Chức chân Mô tả Chân Kí hiệu VSS VDD Vee 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â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 RS + Logic “0”: Bus DB0-DB7 nối với ghi lệnh 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 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với 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 E + Ở chế độ ghi: Dữ liệu bus LCD chuyển vào(chấp nhận) ghi bên phát xung (high-to-low transition) tín hiệu chân E + Ở chế độ đọc: Dữ liệu LCD xuất DB0-DB7 phát cạnh lên (low- to-high transition) chân E lOMoARcPSD|17343589 3.8 Hình ảnh thực tế hệ thống Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 CHƯƠNG IV: LƯU ĐỒ THUẬT TỐN VÀ LẬP TRÌNH 4.1 Lưu đồ thuật toán hệ thống VXL làm trung tâm cần có lưu đồ chung để chọn chế độ đk tương ứng đến lưu đồ - Lưu đồ thuật tốn đóng mở cửa mật số: - Lưu đồ thuật toán điều khiển thiết bị nút nhấn: Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 - Lưu đồ thuật toán thay đổi mật số: 4.2 Chương trình điều khiển #include #include #include #include #include // Khai báo thư viện LCD // Khai báo thư viện Keypad Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 const byte ROWS = 4; // Bốn hàng const byte COLS = 3; // Ba cột char keys[ROWS][COLS] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins[ROWS] = {A0, A1, A2, A3}; byte colPins[COLS] = {2, 3, 4}; Servo myservo; LiquidCrystal_I2C lcd(0x27, 16, 2); // Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); char pass[4] = {'1', '1', '1', '1'}; // Cài đặt mật tùy ý char str[4] = {' ', ' ', ' ', ' '}; int i, j, count = 0, warning = 0, pos = 0, nochange=1, ktra ; int Status=0, check=0, countcard=0, done=1, flag=1, the1=0, the2=0, master=0; int mypos=0; void setup() { pinMode(10, INPUT_PULLUP); pinMode(9, INPUT_PULLUP); pinMode(8, INPUT_PULLUP); pinMode(7, OUTPUT); Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 pinMode(6, OUTPUT); digitalWrite(7,LOW); digitalWrite(6,LOW); lcd.init(); lcd.begin(16, 2); lcd.backlight(); lcd.print(" Nhap mat khau"); myservo.attach(5); myservo.write(0); } void loop() { password(); phim(); } void password(){ char key = keypad.getKey(); // Ký tự nhập vào gán cho biến Key if (key) // Nhập mật { if (i == 0) { str[0] = key; lcd.setCursor(6, 1); lcd.print(str[0]); delay(500); // Ký tự hiển thị hình LCD 1s lcd.setCursor(6, 1); Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 lcd.print("*"); // Ký tự che dấu * } if (i == 1) { str[1] = key; lcd.setCursor(7, 1); lcd.print(str[1]); delay(500); lcd.setCursor(7, 1); lcd.print("*"); } if (i == 2) { str[2] = key; lcd.setCursor(8, 1); lcd.print(str[2]); delay(500); lcd.setCursor(8, 1); lcd.print("*"); } if (i == 3) { str[3] = key; lcd.setCursor(9, 1); lcd.print(str[3]); delay(500); lcd.setCursor(9, 1); lcd.print("*"); Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 count = 1; } i++; } if (count == && nochange==1) { if (str[0] == pass[0] && str[1] == pass[1] && str[2] == pass[2] && str[3] == pass[3] && Status==0) { lcd.clear(); lcd.setCursor(3,0); lcd.print("Chinh xac!"); delay(2000); opendoor(); lcd.clear(); lcd.setCursor(4,0); lcd.print("Mo cua!"); i = 0; count = 0; warning = 0; Status=1; } else { warning++; Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 lcd.clear(); lcd.print("Khong chinh xac!"); delay(1000); if (warning == 3){ lcd.clear(); lcd.setCursor(4,0); lcd.print("Hay cho "); lcd.setCursor(2,1); lcd.print("roi thu lai "); warning = 0; } lcd.clear(); lcd.setCursor(3,0); lcd.print("Thu lai!"); delay(1000); closedoor(); lcd.clear(); lcd.setCursor(1,0); lcd.print("Nhap mat khau"); i = 0; count = 0; Status=0; } Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 } switch (key) { case '#': lcd.clear(); lcd.setCursor(3,0); lcd.print("Dong cua!"); closedoor(); delay(3000); lcd.clear(); lcd.setCursor(1,0); lcd.print("Nhap mat khau"); i = 0; Status=0; break; } switch (key) { case '*': nochange=0; count=0; Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 i=0; lcd.clear(); lcd.setCursor(0,0); lcd.print("Nhap mat khau cu"); break; } if(str[0]==pass[0] && str[1]==pass[1] && str[2]==pass[2] && str[3]==pass[3] && count==1 ){ lcd.clear(); lcd.setCursor(0,0); lcd.print("Nhap matkhau moi"); i=0; count=0; ktra=1; } else if(ktra==0 && count==1 ) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Sai mat khau roi"); delay(2000); i=0; count=0; nochange=1; lcd.clear(); lcd.setCursor(1,0); Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 lcd.print("Nhap mat khau "); } if(count==1 && nochange==0 && ktra==1){ pass[0]=str[0]; pass[1]=str[1]; pass[2]=str[2]; pass[3]=str[3]; lcd.clear(); lcd.setCursor(2,0); lcd.print("Doi mat khau"); lcd.setCursor(3,1); lcd.print("thanh cong"); delay(2000); lcd.clear(); lcd.setCursor(1,0); lcd.print("Nhap mat khau"); nochange=1; ktra=0; i=0; count=0; } } void closedoor(){ Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 for(pos=mypos; pos>0; pos ){ myservo.write(pos); delay(5); } mypos=0; } void opendoor(){ for(pos=mypos; pos