Đồ án 2 được xây dựng với mục tiêu điều khiển rèm cửa tự động với nhiều chế độ hoạt động khác nhau. Trong đồ án sử dụng vi điều khiển Pic18f4520, trình biên dịch Mplab để thực hiện. Đồ án đã thiết kế được 4 chế độ: Điều khiển theo thời gian, điều khiển theo cường độ ánh sáng, điều khiển theo chế độ bằng tay, và một chế độ điều khiển dự trữ để có thế phát triển thêm.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN II Điều Khiển Rèm Cửa Tự Động NGUYỄN TIẾN HOÀNG hoang.nt173900@sis.hust.edu.vn Ngành KT Điều khiển & Tự động hóa Chuyên ngành Kỹ thuật Đo Tin học Công nghiệp Giảng viên hướng dẫn: TS Nguyễn Hồng Nam Bộ mơn: Viện: Kỹ thuật Đo Tin học Công nghiệp Điện Chữ ký GVHD HÀ NỘI 1/2021 MỤC LỤC DANH MỤC HÌNH ẢNH TÓM TẮT NỘI DUNG ĐỒ ÁN CHƯƠNG TÌM HIỂU ĐỀ TÀI .4 1.1 Giới thiệu 1.2 Tìm hiểu thực tế CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Vi điều khiển Pic18f4520 2.2 Giao tiếp I2C 2.3 Ic thời gian thực DS 1307 2.4 Quang điện trở (photoresitance) .10 2.5 LCD 11 2.6 Công tắc hành trình 12 2.7 Động 12 CHƯƠNG XÂY DỰNG BÀI TOÁN THỰC TẾ .15 3.1 Mục tiêu 15 3.2 Sơ đồ khối .15 3.3 Sơ đồ thuật toán 16 3.4 Mô mạch in .21 CHƯƠNG KẾT LUẬN 22 4.1 Kết luận 22 4.2 Hướng phát triển .22 TÀI LIỆU THAM KHẢO 23 DANH MỤC HÌNH ẢNH Hình 1.1 Một số lợi ích rèm cửa tự động .4 Hình 2.1 So sánh số dịng vi điều khiển Hình 2.2 Sơ đồ chân PIC18F4520 Hình 2.3 Sơ đồ I2C Hình 2.4 Sơ đồ DS1307 kết nối với CPU .7 Hình 2.5 Quá trình đọc byte Hình 2.6 Trình tự ghi byte Hình 2.7 LCD 16x2 11 Hình 2.8 Cảm biến tiệm cận hồng ngoại 12 Hình 2.9 Động bước 5V Mạch đệm ULN2003 13 Hình 2.10 Sơ đồ dây mạch mơ .13 Hình 3.1 Sơ đồ khối chức 15 Hình 3.2 Sơ đồ mạch nguyên lý Altium .15 Hình 3.3 Mode Điều chỉnh tự động theo chế độ ánh sáng 17 Hình 3.4 Mode 3: điều chỉnh tay .17 Hình 3.5 Mạch PCB 21 Hình 3.6 Mạch PCB 21 Hình 3.7 Mơ protues 21 DANH MỤC BẢNG BIỂU Bảng 2.1 Một số chân chức LCD 12 TÓM TẮT NỘI DUNG ĐỒ ÁN Đồ án xây dựng với mục tiêu điều khiển rèm cửa tự động với nhiều chế độ hoạt động khác Trong đồ án sử dụng vi điều khiển Pic18f4520, trình biên dịch Mplab để thực Đồ án thiết kế chế độ: Điều khiển theo thời gian, điều khiển theo cường độ ánh sáng, điều khiển theo chế độ tay, chế độ điều khiển dự trữ để phát triển thêm Một số hạn chế đồ án mô vẽ mạch in chưa làm mạch thực tế Ngồi phát triển đồ án cách sử dụng module wifi để điều khiển qua điện thoại thơng minh, web,… CHƯƠNG TÌM HIỂU ĐỀ TÀI 1.1 Giới thiệu Hiện nay, nhu cầu dụng rèm cửa thông minh, rèm cửa điều khiển từ xa sử dụng nhiều biệt thự, phòng chung cư, hội nghị sân khấu lớn đại sảnh, Vì sử dụng rèm vải thói quen từ lâu người Việt Để đối phó với khí hậu nóng nực mùa hè, khơ lạnh mùa đông, rèm vải giải pháp tối ưu Sự mềm mại, màu sắc đa dạng, phong phú rèm vải khiến cho không gian nhà trở nên sinh động, hút Khi giới ngày đại hóa cơng nghệ hóa thiết bị, công cụ thủ công dần bị thay cơng cụ tự động Thì việc ứng dụng rèm cửa tự động dần trở nên quen thuộc với sống Hình 1.1 Một số lợi ích rèm cửa tự động 1.2 Tìm hiểu thực tế Một số tính rèm thị trường: + Điều khiển từ xa + Điều khiển đóng mở rèm smartphone, ipad + Công nghệ điều khiển cảm ứng thông công tắc cảm ứng, nhẹ nhàng đóng mở rèm với chạm tay + Cảm biến môi trường tự động đóng mở rèm + Rèm tự động đóng mở cảm biến dựa vào thơng số nhiệt độ hoắc sức gió nắng gắt hay gió to, có mưa,… rèm tự động đóng lại + Hẹn đóng mở rèm CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Vi điều khiển Pic18f4520 Một số ưu điểm Pic: + Giá thành dòng Pic khơng q mắc + Các dịng Pic có đầy đủ tính để hoạt động độc lập + Là bổ sung kiến thức ứng dụng cho họ vi điều khiển 8051 + Có hỗ trợ cao nhà sản xuất công cụ lập trình, trình biên dịch, mạch nạp Pic từ đơn giản tới phức tạp Các tính đa dạng dịng Pic khơng ngừng phát triển + Có nhiều phận ngoại vi chip, bao gồm: Cổng và/ra số, biến đổi ADC, nhớ EEFROM, định thời, điều chế độ rộng xung (PWM)… + Bộ nhớ chương trình nhớ liệu tích hợp chip + Ngồi tính họ VĐK khác, cịn tích hợp nhiều tính tiện lợi cho người thiết kế lập trình Các kí hiệu vi điều khiển PIC: + PIC12xxxx: độ dài lệnh 12 bit + PIC16xxxx: độ dài lệnh 14 bit + PIC18xxxx: độ dài lệnh 16 bit + C: PIC có nhớ EPROM (chỉ có 16C84 EEPROM) + F: PIC có nhớ flash + LF, LV: PIC có nhớ flash hoạt động điện áp thấp Hình 2.2 So sánh số dòng vi điều khiển Một số đặc điểm Pic 18F4520: + 8/16 bít CPU, xây dựng theo kiến trúc kiến trúc Harvard sửa đổi, với tập lệnh rút gọn (do PIC thuộc loại RISC) + Flash Rom tuỳ chọn 256byte đến 256 kbybe + Các cổng xuất/nhập (mức logic thường từ 0-5v, ứng với mức logic 1) + 8/16 bít timer + Các chuẩn giao tiếp ngoại vi nối tiếp đồng bộ/ không đồng + Bộ chuyển đổi ADC + Bộ so sánh điện áp + MSSP Pripheral dùng cho giao tiếp I2C, SPI + Bộ nhớ nội EEPROM - ghi/ xố lên tới hàng triệu lần + Modul điều khiển động cơ, đọc encoder + Hỗ trợ giao tiếp USB + Hỗ trợ điều khiển Ethernet.9 + Hỗ trợ giao tiếp CAN + Hỗ trợ giao tiếp LIN + Hỗ trợ giao tiếp IRDA + DSP tính xử lý tín hiệu số Hình 2.3 Sơ đồ chân PIC18F4520 2.2 Giao tiếp I2C I2C (Inter Integrated Circuit) giao thức master-slave có master nhiều master nhiều slave SPI có master Ngồi ban đầu I2C tạo để có giao tiếp có chân Nó giao thức nối tiếp đồng truyền liệu hai thiết bị Nó thường sử dụng để giao tiếp khoảng cách ngắn Đó giao thức tốc độ chậm so với giao tiếp SPI I2C sử dụng nhiều ứng dụng đọc RTC (đồng hồ thời gian thực), truy cập nhớ EEPROM bên Nó sử dụng mơ-đun cảm biến quay hồi chuyển, từ kế, v.v Bus I2C sử dụng dòng để liên lạc: Serial Clock (SCL): Đây tín hiệu đồng hồ Dữ liệu gửi đến thiết bị khác kiện đánh dấu đồng hồ Chỉ thiết bị có quyền kiểm sốt dịng SCL tức Master phát Dữ liệu nối tiếp (SDA): Đây dòng liệu nối tiếp sử dụng để gửi liệu theo hai hướng Hình 2.4 Sơ đồ I2C Mỗi dây SDA hay SCL nối với điện áp dương nguồn cấp thông qua điện trở pull-up Lý cần có điện trở chân SDA SCL thiết kế theo dạng Open_drain (cổng mở) nghĩa chúng kéo đường tín hiệu xuống thấp gặp khó khăn đưa tín hiệu mức cao 2.3 Ic thời gian thực DS 1307 IC DS1307 đồng hồ thời gian thực hãng Maxim có tích hợp giao thức I2C Vi mạch cung cấp thông tin năm, tháng, ngày, giờ, phút, giây dạng mã BCD Hình 2.5 Sơ đồ DS1307 kết nối với CPU Trình tự đọc byte Để bắt đầu qu|t trình đọc, thiết bị chủ Master gởi tín hiệu Start cho thiết bị tớ Salve để yêu cầu bắt đầu trình giao tiếp Tiếp đó, Master gởi byte liệu bao gồm bit địa thiết bị (địa Slave mà Master muốn giao tiếp) bit Write để xác định Slave sử dụng cho giao tiếp I2C Địa thiết bị nhà sản xuất quy định Sau Slave tương ứng nhận 8bit gởi lại cho Master tín hiệu cơng nhận ACK (Acknowledge) để xác nhận nhận yêu cầu từ Master Hình 2.6 Quá trình đọc byte Sau đó, Master gởi 8bit chứa địa ghi mà Master muốn đọc từ Slave Vì trình đọc liệu, nên sau nhận bit ACK từ Slave, Master gởi tín hiệu Re-Start, 7bit địa thiết bị bit Read Chú ý 7bit địa thiết bị phải trùng với 7bit địa mà Master gởi lần trước đó, khơng chương trình khơng thực q trình đọc liệu Sau Slave nhận yêu cầu Read từ Master, bit ACK 8bit liệu gởi cho Master Để kết thúc trình đọc, Master gởi bit NAC (Not Acknowledge) kèm theo bit Stop Đây thiết lập code - Tạo tín hiệu Start StartI2C(); Ta có gọi hàm vi điều khiển: Tạo tín hiệu Start StartI2C(); IdleI2C(); //chờ bus rảnh (idle) - Ghi byte chứa địa thiết bị (slave address=1101000) bit R/W=0 để thực thao tác ghi: WriteI2C(0xd0); IdleI2C(); WriteI2C(0x01); // ghi địa 0x01 IdleI2C(); WriteI2C(0x06); // ghi 0x06 vào đ/c 0x01 IdleI2C(); WriteI2C(0x07); // ghi 0x07 vào đ/c 0x02 IdleI2C(); StopI2C(); // Kết thúc I2C Chuyển đổi mã BCD DS1307 sử dụng mã BCD để lưa liệu Để hiển thị thiết bị hiển thị cần phải chuyển từ mã BCD sang số nguyên Để ghi liệu vào DS1307 cần chuyển đổi từ số nguyên sang mã BCD Chuyển từ BCD sang số nguyên: char bcd_int(int x)26 { return (((x>>4)&0x0f)*10)+(x&0x0f); } Chuyển từ số nguyên sang BCD: int int_bcd(int x) { char N[10]={0X00,0X01,0X02,0X3,0X4,0X05,0X06,0X07,0X08,0X09}; int a,b; a=x/10; b=x%10; return ((N[a]