thiết kế hệ thông tự động bật đèn khi trời tối ,sử dụng pic16f877a,kèm bản vẽ +code liên hệ email: ledung020398@gmail.com MỤC LỤC CHƯƠNG I: NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG VI ĐIỀU KHIỂN.5 1.Xây dựng mục tiêu và sơ đồ khối của hệ thống dùng vi điều khiển:5 1.1.Tìm hiểu về đề tài:5 1.2.Xây dựng mục tiêu và sơ đồ khối:6 2.Nguyên lý hoạt động của hệ thống:7 CHƯƠNG II: TÍNH CHỌN LINH KIỆN SỬ DỤNG TRONG HỆ THỐNG.9 1.Giới thiệu các linh kiện trong hệ thống:9 2.Chọn linh kiện trong hệ thống:9 2.1. Vi điều khiển PIC16F877A:9 2.2. Quang trở:16 a.Giới thiệu:16 b.Sử dụng bộ cảm biến photoresistor:16 2.3. Led 7 đoạn:17 a.Giới thiệu:17 b.Sử dụng led 7 đoạn anode chung:17 2.4. Điện trở:18 2.5. Tụ điện:19 a. Giới thiệu:19 b. Sử dụng tụ gốm:19 2.6. Thạch anh:20 2.7. Nguồn DC 5V Adapter:20 2.8. Transistor20 3.Tính toán linh kiện:21 CHƯƠNG III: MÔ PHỎNG HỆ THỐNG23 1.Thiết kế mạch nguyên lý:23 1.1.Module cảm biến:23 1.2.Module điều khiển trung tâm:24 1.3.Module tương tác điều khiển (hiển thị):24 1.4.Module chấp hành:25 2.Chạy mô phỏng:26 2.1.Lưu đồ thuật toán:26 2.2.Mô phỏng:26 CHƯƠNG IV: CHẾ TẠO MẠCH THỰC TẾ29 1.Thiết kế mạch in:29 2.Lắp đặt thiết bị và hoàn thiện mạch:30 3.Đánh giá kết quả:30
Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh MỤC LỤC CHƯƠNG I: NGUN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG VI ĐIỀU KHIỂN Xây dựng mục tiêu sơ đồ khối hệ thống dùng vi điều khiển: 1.1 Tìm hiểu đề tài: .5 1.2 Xây dựng mục tiêu sơ đồ khối: .6 Nguyên lý hoạt động hệ thống: CHƯƠNG II: TÍNH CHỌN LINH KIỆN SỬ DỤNG TRONG HỆ THỐNG .9 Giới thiệu linh kiện hệ thống: Chọn linh kiện hệ thống: 2.1 Vi điều khiển PIC16F877A: 2.2 Quang trở: 16 a Giới thiệu: 16 b Sử dụng cảm biến photoresistor: 16 2.3 Led đoạn: 17 a Giới thiệu: 17 b Sử dụng led đoạn anode chung: .17 2.4 Điện trở: 18 2.5 Tụ điện: 19 a Giới thiệu: .19 b Sử dụng tụ gốm: .19 2.6 Thạch anh: .20 2.7 Nguồn DC 5V Adapter: .20 2.8 Transistor 20 Tính tốn linh kiện: 21 CHƯƠNG III: MÔ PHỎNG HỆ THỐNG 23 Thiết kế mạch nguyên lý: .23 1.1 Module cảm biến: 23 1.2 Module điều khiển trung tâm: 24 1.3 Module tương tác điều khiển (hiển thị): 24 1.4 Module chấp hành: 25 Chạy mô phỏng: 26 2.1 Lưu đồ thuật toán: 26 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý 2.2 GVHG: TS Ngơ Đình Thanh Mơ phỏng: .26 CHƯƠNG IV: CHẾ TẠO MẠCH THỰC TẾ 29 Thiết kế mạch in: 29 Lắp đặt thiết bị hoàn thiện mạch: .30 Đánh giá kết quả: 30 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh CHƯƠNG I: NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG VI ĐIỀU KHIỂN Xây dựng mục tiêu sơ đồ khối hệ thống dùng vi điều khiển: 1.1 Tìm hiểu đề tài: a Khái quát chung: “Thiết kế hệ thống tự động bật đèn trời tối” Ngày nay, ứng dụng vi điều khiển sâu vào đời sống sinh hoạt sản xuất người Thực tế hầu hết thiết bị dân dụng điều có góp mặt Vi điều khiển vi xử lý Ứng dụng vi điều khiển thiết kế hệ thống làm giảm chi phí thiết kế hạ giá thành sản phẩm đồng thời nâng cao tính ổn định thiết bị hệ thống Trên thị trường có nhiều họ vi điều khiển 8051 hãng Intell, PIC hãng Microchip, H8 hãng Hitachi,vv Việc phát triển ứng dụng hệ thống vi điều khiển đòi hỏi hiểu biết phần cứng phần mềm, mà hệ thống vi xử lý sử dụng đẻ giải toán khác Tính đa dạng ứng dụng phụ thuộc vào việc lựa chọn hệ thống vi xử lý cụ thể vào kỹ thuật lập trình Các vi xử lý có mặt thiết bị điện tử đại máy thu hình, máy ghi hình dàn âm thanh, điều khiển cho lị sưởi hệ thống điều hòa đến thiết bị điều khiển dùng công nghiệp Lĩnh vực ứng dụng hệ thống vi xử lý nghiên cứu khoa học, y tế giao thông đến công nghiệp, lượng Chúng ta sử dụng ngơn ngữ khác lập trình C, C++, Visual, Ngày nay, với phát triển nhanh chóng ngành tự động hóa, nhiều ứng dụng tự động hóa giúp ích cho người nhiều đời sống sản xuất nhằm nâng cao suất lao động giảm thiểu tối đa sức lao động người Ứng dụng người biết đến nhiều hệ thống tự đóng ngắt đèn không cần tác động người Xuất phát từ thực tiễn kết hợp với kiến thức chúng em có q trình học tập Trường Đại Học Bách Khoa Đà Nẵng, chúng em thầy TS.Ngơ Đình Thanh giao đề tài “thiết kế hệ thống tự động bật đèn trời tối” đặt hành lang trời, làm đồ án môn học “Vi điều khiển – vi xử lý” Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh b Yêu cầu đề tài: - Dùng cảm biến ánh sáng Hiển thị thông số đo LED đoạn - Thao tác điều khiển khống chế mô LED màu xanh, vàng, đỏ - Xây dựng chương trình riêng biệt gồm: Dùng ngơn ngữ C để lập trình hệ thống Dùng hợp ngữ để lập trình phần thiết lập ban đầu - Hệ thống tối thiểu phải có: Vi điều khiển, cảm biến, hiển thị, số phím bấm - Chương trình vi điều khiển có sử dụng timer, ngắt c Phương án thiết kế: - Dùng quang trở để cảm biến ánh sáng - Hiển thị số lần bật tắt LED đoạn - Hiển thị mức sáng theo cường độ cảm biến ánh sáng đo LED màu xanh, vàng, đỏ - Khối nguồn cung cấp: Adapter 5V/2A - Vi điều khiển sử dụng PIC16F877A - Chương trình để điều khiển sử dụng CCS để mô 1.2 Xây dựng mục tiêu sơ đồ khối: a Mục tiêu: - Tìm hiểu nguyên lý hoạt động đèn chiếu sáng cơng cộng, từ tìm hiểu nguyên tắc điều khiển đèn mạch điều khiển - Mục tiêu điều khiển độ sáng đèn điều khiển tự động (bật, tắt) đèn qua cảm biến ánh sáng (quang trở) - Qua tìm hiểu, sinh viên vẽ tồn sơ đồ mạch điều khiển, mô mạch cảm biến ánh sáng phần mềm proteus, từ đố tiến hành mua linh kiện cần thiết khâu lại đấu dây chạy thử b Sơ đồ khối: Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh Hình 1: Sơ đồ khối hệ thống vi điều khiển PIC Nguyên lý hoạt động hệ thống: Sơ đồ khối hệ thống bật, tắt đèn trời tối hình với nguyên lý hoạt động đơn giản Các khối nguồn hoạt động cấp nguồn 5V để giúp khối khối hiển thị cảm biến ánh sáng hoạt động đặc biệt vi điều khiển PIC 16F877A Nhìn chung hệ thống hoạt động dựa nguyên lý: - Khi có nguồn ni mạch, cảm biến ánh sáng tương tác với bên ngồi - Sau đó, cảm biến gửi liệu qua vi điều khiển PIC Vi điều khiển nhận dải nhiều giá trị mức độ sáng tối từ cảm biến ánh sáng, tính toán - Dựa vào dải nhiều giá trị mức độ sáng tối mà cảm biến ánh sáng gửi về, vi điều khiển liên tục so sánh giá trị nhận dải với ngưỡng lập trình sẵn đồng thời mô theo mức: Mức cao(3): 0-200 Mức bình thường(2): 200 - 400 Mức thấp(1): 400-600 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh Hiển thị tương ứng LED xanh, vàng, đỏ - Khi trời sáng, tức mức cao, khối nguồn cấp nguồn cho LED xanh để thông báo - Tương tự trời tối, tức mức thấp, vi điều khiển xuất liệu cho điều khiển LED đỏ cấp nguồn Các khối hiển thị có chức sau: - Khối điều khiển (3 LED xanh, đỏ, vàng): Khi cảm biến nhận dải giá trị gửi cho vi điều khiển có chương trình điều khiển khống chế thực vi điều khiển để nhận biết dải ánh sáng Từ xuất đèn báo mức độ sáng tối môi trường mô LED xanh, đỏ, vàng - Khối hiển thị số lần bật (LED đoạn) hiển thị số lần bật tắt ba led xanh, đỏ, vàng - Vi điều khiển xuất liệu điều khiển bật, tắt led xanh, đỏ, vàng theo mức độ sáng tối môi trường Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh CHƯƠNG II: TÍNH CHỌN LINH KIỆN SỬ DỤNG TRONG HỆ THỐNG Giới thiệu linh kiện hệ thống: Hệ thống tự động bật đèn trời tối có phần như: - Khối nguồn DC 5V adapter - Khối cảm biến: Sử dụng quang trở để làm module cảm biến ánh sáng - Khối điều khiển trung tâm dùng vi điều khiển PIC16F877A - Khối hiển thị: LED đoạn, LED đơn khác Chọn linh kiện hệ thống: 2.1 Vi điều khiển PIC16F877A: a Sơ đồ chân PIC16F877A: Hình 2: Sơ đồ chân pic16f877a PIC16F877A có tất 40 chân Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh 40 chân chia thành PORT, chân cấp nguồn, chân GND, chân thạch anh chân dùng để RESET vi điều khiển: PORT PIC16F877A: - PORT B: chân - PORT D: chân - PORT C: chân - PORT A: chân - PORT E: chân b Khái quát chức port vi điều khiển PIC16F877A: PORTA: PORTA gồm có chân Các chân PortA, ta lập trình để thực chức “hai chiều” : xuất liệu từ vi điều khiển ngoại vi nhập liệu từ ngoại vi vào vi điều khiển Việc xuất nhập liệu PIC16F877A khác với họ 8051 Ở tất PORT PIC16F877A, thời điểm thực chức :xuất nhập Để chuyển từ chức nhập qua chức xuất hay ngược lại, ta phải xử lý phần mềm, không 8051 tự hiểu lúc chức nhập, lúc chức xuất Trong kiến trúc phần cứng PIC16F877A, người ta sử dụng ghi TRISA địa 85H để điều khiển chức I/O Muốn xác lập chân PORTA nhập (input) ta set bit tương ứng chân ghi TRISA Ngược lại, muốn chân output ta clear bit tương ứng chân ghi TRISA Điều hồn tồn tương tự PORT lại Ngồi ra, PORTA cịn có chức quan trọng sau: - Ngõ vào Analog ADC : thực chức chuyển từ Analog sang Digital - Ngõ vào điện so sánh - Ngõ vào xung Clock Timer0 kiến trúc phần cứng : thực nhiệm vụ đếm xung thông qua Timer0… - Ngõ vào giao tiếp MSSP (Master Synchronous Serial Port) PORTB: 10 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý 1.1 GVHG: TS Ngơ Đình Thanh Hình 12: Sơ đồ mạch nguyên lý hệ thống Module cảm biến: Cảm biến ánh sáng quang trở phát cường độ ánh sáng, sử dụng cảm biến photoresistor loại nhạy cảm, cho tín hiệu ổn định, rõ ràng xác so với quang trở Gắn vào chân RA0 để đo tín hiệu analog từ chuyển đổi sang tín hiệu digital chuyển đổi ADC pic16f877a Hình 13: Module cảm biến 1.2 Module điều khiển trung tâm: Khối điều khiển trung tâm dùng vi điều khiển Pic 16F877A Khi có tín hiệu từ cảm biến ánh sáng qua chân RA0 cổng A vi điều khiển kích 23 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh hoạt ngắt cổng A, qua thuật tốn nạp Pic thực chương trình điều khiển đưa tới cổng B C, tín hiệu để điều khiển khối hiển thị (Led đoạn) khối chấp hành Bộ tạo dao động dùng thạch anh 12MHz cung cấp ngồn dao động cho Pic Bộ Reset cấp nguồn 5V xác lập trạng thái ban đầu cho Pic18F877A 1.3 Hình 14: Module điều khiển trung tâm Module tương tác điều khiển (hiển thị): Sử dụng phương pháp quét led: LED không bật tắt đồng thời mà luân phiên bật tắt với tần số đủ cao để mắt thường phân biệt thay đổi Cả led đoạn Anode chung (mức đèn sáng) nối port (PORTB) chân Anode chung led nối theo thứ tự chân RC0 RC1 thông qua NPN transistor NPN transistor: liệu đưa vào đầu B mức cao (mức 1), dòng từ E đến C, làm led đoạn sáng, tín hiệu đưa vào mức ngược lại 24 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh Với Transistor ta thay đổi mức tín hiệu liên tục Hình 15: Module tương tác điều khiển hiển thị 1.4 Module chấp hành: Vi xử lý sau xử lý tín hiệu gửi lệnh điều khiển Nếu: Cường độ ánh sáng nằm khoảng – 204,6 thuộc khoảng mức sáng thấp, Led đỏ cấp nguồn Cường độ ánh sáng nằm khoảng 204,6 - 409,2 thuộc khoảng mức sáng trung bình, Led vàng cấp nguồn Cường độ ánh sáng nằm khoảng 409,2 – 613,8 thuộc khoảng mức sáng cao, Led xanh cấp nguồn Hình 16: Module chấp hành Chạy mơ phỏng: 2.1 Lưu đồ thuật tốn: 25 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh Hình 17: Sơ đồ thuật tốn mạch 2.2 Mô phỏng: a Khi bắt đầu hoạt động: Khi bất đầu cấp nguồn, mạch bắt đầu vào trạng thái hoạt động Ánh sáng đạt mức cao nhất, điện áp nhỏ nhất: Led đoạn hiển thị 00, led xanh đỏ vàng chưa sáng 26 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh Hình 18: Trạng thái ban đầu hệ thống b Khi cường độ ánh sáng cao: Tại thời điểm cường độ ánh sáng nằm mức cao điện trở quang giảm, điện áp đầu module tăng led đỏ sáng đồng thời led đoạn đếm lên 01 để thể dịng điện áp Hình 19: Trạng thái mức thấp hệ thống 27 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh c Khi cường độ ánh sáng trung bình: Tại thời điểm cường độ ánh sáng nằm mức trung bình điện trở quang giảm, điện áp đầu module tăng led vàng sáng đồng thời led đoạn đếm lên 02 để thể dòng điện áp Hình 20: Trạng thái mức trung bình hệ thống d Khi cường độ ánh sáng thấp: Tại thời điểm cường độ ánh sáng nằm mức thấp điện trở quang giảm, điện áp đầu module tăng led xanh sáng đồng thời led đoạn đếm lên 03 để thể dòng điện áp Hình 21: Trạng thái mức cao hệ thống 28 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh CHƯƠNG IV: CHẾ TẠO MẠCH THỰC TẾ Thiết kế mạch in: Hình 22: Sơ đồ mạch in hệ thống Hình 23: Mạch mơ 3d hệ thống 29 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh Lắp đặt thiết bị hoàn thiện mạch: Hình 24: Mạch thực tế hệ thống Đánh giá kết quả: Hệ thống bật tắt đèn thông minh dành cho hành lang cơng viên ngồi trời sử dụng cảm biến ánh sáng vi xử lý Pic đáp ứng yêu cầu môn học Hệ thống hoạt động tương đối ổn định có khả nâng cấp cải tiến dùng cho mục đích khác : Chiếu sáng cầu thang, nhà vệ sinh,… Tuy nhiên, hệ thống khuyết điểm như: Sản phẩm hồn thiện khơng đẹp, vật liệu làm mơ hình khơng tốt, … Để hệ thống ứng dụng thực tiễn cịn nhiều vấn đề cần giải : Các lỗi kể trên, chống nhiễu cho Sensor, Nếu giải vấn đề khả ứng dụng hệ thống lớn phù hợp với yêu cầu tự động ngày cao đời sống việc tiết kiệm điện hoàn cảnh thiếu điện 30 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh Cùng với nỗ lực thân kiến thức kinh nghiệm nhiều hạn chế nên khơng thể tránh khỏi thiếu sót, nên chúng em mong nhận giúp đỡ ý kiến đóng góp thầy bạn nhằm phát triển mở rộng đề tài TÀI LIỆU THAM KHẢO [1] Trần Thái Anh Âu- Giáo trình Vi xử lý vi điều khiển- Trung tâm học liệu Đại học Đà Nẵng – 2014 [2] PIC 16F87x datasheet [3] PIC Mocrocontrollers, Milan Verle PHỤC LỤC Chương trình lập trình ngon ngữ C: #include 31 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh #device ADC=10 #use delay(crystal=12000000) #include const char led[]= { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 // }; #byte ADCON0 =0x1f #bit ADCS1 =0x1f.7 #bit ADCS0 =0x1f.6 #bit CHS2 =0x1f.5 #bit CHS1 =0x1f.4 #bit CHS0 =0x1f.3 #bit GO_DONE =0x1f.2 #bit ADON =0x1f.0 #byte ADCON1 =0x9f #bit ADFM=0x9f.7 #bit ADCS2 =0x9f.6 #bit PCFG3 =0x9f.3 #bit PCFG2 =0x9f.2 #bit PCFG1 =0x9f.1 #bit PCFG0 =0x9f.0 32 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh #BYTE T1CON = 0X10 #BYTE TMR1H = 0X0F #BYTE TMR1L =0X0E #BIT TMR1ON = 0X10.0 #BIT TMR1CS = 0X10.1 #BIT T1CKPS1 = 0X10.5 #BIT T1CKPS0 = 0X10.4 #BIT TMR1IF = 0X0C.0 void HienThi(int8 so); void delay_timer_1ms(); void main() { TRISB = 0; TRISC = 0; ADCS1 =0;ADCS0 =0;ADCS2 = 0; CHS2 =0;CHS1=0;CHS0=0; GO_DONE =0; ADON=1; ADFM =1; PCFG3=0;PCFG2=0;PCFG1=0;PCFG0=0; 33 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh TMR1ON = 1;TMR1CS =0;//TIMER1 T1CKPS1 = 0;T1CKPS0 = 0;//N = int16 value = 0; int32 v; while(TRUE) { GO_DONE =1; while(GO_DONE == 1); value = read_ADC(); v = (int32)value*5/1023; HienThi(v); if(v == 0){ RC2 = 0; RC3 = 0; RC4 = 0; } else if(v == 1){ RC2 = 1; RC3 = 0; RC4 = 0; } else if(v == 2){ RC2 = 0; RC3 = 1; 34 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh RC4 = 0; } else if(v == 3){ RC2 = 0; RC3 = 0; RC4 = 1; } else if(v >= 4){ RC2 = 1; RC3 = 1; RC4 = 1; } } } void HienThi(int8 so) { int hc = so/10; int dv = so%10; PORTB = led[hc]; RC0 = 1; //delay_ms(1); delay_timer_1ms(); RC0 = 0; 35 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh //delay_ms(1); delay_timer_1ms(); PORTB = led[dv]; RC1 = 1; //delay_ms(1); delay_timer_1ms(); RC1 = 0; //delay_ms(1); delay_timer_1ms(); } void delay_timer_1ms() { // F= Fosc/4=12MHz/4 = 3MHz=3000Hz // T= 1/F = 0,33us // Tnm=(65536-TMR1)*T=3000*0,33= 1000us= 1ms TMR1H= 0xF4;TMR1L= 0x48;// TMR1 = F448(Hex) = 65336(Dec) while(TMR1IF ==0); TMR1IF =0; } Chương trình lập trình hợp ngữ phần thiết lập ban đầu: ORG 00; GOTO MAIN; 36 Nhóm thực hiện: Nhóm Đồ án: Vi điều khiển – vi xử lý GVHG: TS Ngơ Đình Thanh ORG 01; MAIN; MOVWF 06; MOVWF 07; BCF 1f.7; BCF 1f.6; BCF 1f.5; BCF 1f.4 BCF 1f.3 BCF 1f.2 BSF 1f.0 BSF 9f.7 BCF 9f.6 BCF 9f.3 BCF 9f.2 BCF 9f.1 BCF 9f.0 BSF 10.0 BCF 10.1 BCF 10.5 BCF 10.4 37 Nhóm thực hiện: Nhóm