Thiết kế mạch đếm số lượng sản phẩm sử dụng 2 cảm biến hồng ngoại giao tiếp với pic16f877a hiển thị led 7 thanh........................................................................................................................................
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN ĐỒ ÁN CHUYÊN NGÀNH ĐỀ TÀI:THIẾT KẾ, CHẾ TẠO MẠCH ĐẾM SỐ LƯỢNG XE RA VÀO GARA ƠTƠ GIÁO VIÊN HƯỚNG DẪN : HỒNG THỊ HẰNG SINH VIÊN THỰC HIỆN : PHẠM MINH HIẾU BÙI HUY HOÀNG NGUYỄN VIỆT HOÀNG LỚP : 1122202.3 CHƯƠNG 1:TỔNG QUAN VỀ ĐỀ TÀI .5 1.1.Đặt vấn đề .5 1.2.Phân tích yêu cầu thiết kế .5 1.2.1.Yêu cầu tính 1.2.2.Yêu cầu phi tính .5 1.3.Cơ sở lý thuyết .6 1.3.1.Vi xử lý pic16f877a 1.3.2 led 1.3.3 cảm biến quang Cấu tạo nguyên lý hoạt động cảm biến quang CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 11 2.1 sơ đồ khối tổng quát mạch 11 2.2.1 Khối Vi điều khiển: 12 2.2.2.Khối nút nhấn .13 2.2.3.Khối thị LED 14 2.2.4.Khối cảm biến .14 2.2.4.khối cách ly 15 CHƯƠNG 3: KẾT QUẢ THỰC HIỆN SẢN PHẨM 16 3.1 sơ đồ nguyên lý toàn mạch 16 3.2.thiết kế mạch in 16 3.3.lưu đồ giải thuật 16 3.4 chương trình điều khiển .18 CHƯƠNG 4:KẾT LUẬN 24 Nhận xét giáo viên hướng dẫn Ngày Tháng Năm Giáo viên hướng dẫn LỜI NÓI ĐẦU Hiện số lượng xe ôtô Việt Nam ngày tăng, thành phố lớn Hà Nội TP Hồ Chí Minh Với số lượng tơ có mức độ tăng tơ việc thiếu bãi đỗ xe chắn xảy thành phố lớn, nhu cầu bãi đỗ xe ô tô lớn Với gara ôtô lớn số lượng xe nhiều cần phải có mạch điện để giúp đỡ cho việc điều khiển quản lý số lượng xe gara cần thiết, số lượng ôtô vào lớn mức cho phép gara xe gây cản trở lưu thơng gara cần phải giới hạn số lượng xe vào gara Vì việc thiết kế mạch đếm điều khiển quản lý số lượng xe ôtô giúp ta kiểm soát số lượng ôtô gara bãi đậu xe cần thiết Mục đích mơ hình điều khiển đóng mở gara đếm số lượng xe ôtô giúp cho người quản lý gara ôtô đểm số lượng ôtô giới hạn lượng xe vào phù hợp với sức chứa gara Yêu cầu mạch đếm số lượng xe ơtơ phải chạy cách xác, ổn định, gọn nhẹ dễ lắp đặt dễ sửa chữa giá thành thấp Dựa phương pháp nghiên cứu phân tích đặc tính chức linh kiện, IC áp dụng kiến thức học với hướng dẫn giảng viên phụ trách để xây dựng nên mơ hình gara ơtơ tự động điều khiển quản lý hoạt động tốt với yêu cầu đề tài Trong trình thực đề tài khả kiến thức thực tế có hạn nên khơng thể tránh khỏi sai sót, kính mong thầy đóng góp ý kiến để đề tài hoàn thiện Chúng em xin chân thành cảm ơn! Nhóm sinh viên thực hiện: PHẠM MINH HIẾU BÙI HUY HOÀNG NGUYỄN VIỆT HOÀNG CHƯƠNG 1:TỔNG QUAN VỀ ĐỀ TÀI 1.1 Đặt vấn đề Yêu cầu đề tài đặt thiết kế chế tạo bảng mạch vi điều khiển thực chức đếm số lượng xe vào gara ô tô, cài đặt số lượng xe đỗ sử dụng Vi điều khiển PIC16F877A Vi điều khiển PIC16F877A nhận tín hiệu từ cảm biến sau xử lý hiển thị ledd Vi điều khiển cịn có chức nhận tín hiệu đặt số lượng từ nút bấm, sau xử lí để hiển thị cho phù hợp từ bật tắt thiết bị điện mong muốn Đề tài chọn LED THANH để thực chức hiển thị thông tin trạng thái có liên quan đề tài Từ việc phân tích khảo sát trên, nhóm đưa vấn đề cần giải yêu cầu đề tài đặt là: - Tìm hiểu kiến thức Vi điều khiển PIC16F877AXây dựng sơ đồ khối xây dựng ngun lí mơ mạch phần mềm PROTEUS Thiết kế mạch in phần mềm ALTIUM Thực lắp ráp linh kiện mạch in Tìm hiểu mạch nạp PICKIT phần mềm nạp PICKIT3 để thực nạp code cho Vi điều khiển PIC16F877A Viết báo cáo tổng hợp quy trình thực đề tài 1.2 Phân tích yêu cầu thiết kế 1.2.1 Yêu cầu tính Mạch có u cầu tính sau: 1.2.2 - Vi điều khiển: Vi điều khiển PIC16F877A Cấu hình cài đặt số lượng chỗ để xe nút nhấn Nguồn cấp: Input 9-12 VDC Có mạch nguồn ổn áp 5VDC bảng mạch Màn hình LED THANH hiển thị số lượng xe có gara Yêu cầu phi tính Kích thước giới hạn: 9x15 cm Sắp xếp linh kiện dây khoa học Thiết kế đầu kết nối hợp lý Đảm bảo an toàn liên động điện 1.3 Cơ sở lý thuyết 1.3.1 Vi xử lý pic16f877a 1.3.1.1.Giới thiệu PIC16F877A VDK thuộc họ PIC16xxx với tập lệnh gồm 35 lệnh có độ dài 14bit Mỗi lệnh thực thi chu kỳ máy Tôc độ hoạt động tối đa cho phép 20Mhz với chu kỳ lệnh 200ns Bộ nhớ chương trình 8k, nhớ liệu 368 x byte RAM nhớ liệu EEPROM với dung lượng 256 x byte Hình IC Vi điều khiển PIC16F877A Sơ đồ chân PIC16F877A Hình Sơ đồ chân PIC16F877A * PIC16F877A gồm có 40 chân: -(VDD, VSS): Cung cấp nguồn điện cho vi điều khiển VDD chân nguồn dương (+5V), VSS chân nguồn âm (0V mức tiếp đất) - (MCLR): Đặt lại vi điều khiển trạng thái ban đầu -(PORTA, PORTB, PORTC, PORTD): Mỗi PORT (A, B, C, D) có chân đầu vào/đầu cấu hình theo ý muốn -(AN0-AN7): Cung cấp kênh đầu vào analog để đọc liệu từ cảm biến analog -Chân ngoại vi USART (RC6/TX, RC7/RX): Sử dụng cho giao tiếp nối tiếp thông qua giao thức USART (Universal Synchronous/Asynchronous Receiver/Transmitter) -Chân ngoại vi SPI (RB0/SS, RB1/SCK, RB2/SDI, RB3/SDO): Sử dụng cho giao tiếp đồng (SPI - Serial Peripheral Interface) -Chân ngoại vi I2C (RB0/SDA, RB1/SCL): Sử dụng cho giao tiếp không đồng (I2C - Inter-Integrated Circuit) -Chân ngoại vi PWM (CCP1, CCP2): Sử dụng cho điều khiển độ rộng xung (PWM Pulse Width Modulation) để điều khiển độ sáng, tốc độ động cơ, v.v -Chân hẹn giờ/timer (TMR0, TMR1, TMR2): Cung cấp đếm thời gian để tạo ngắt hẹn giờ, đo thời gian, chức liên quan 1.3.2 led LED hay gọi LED đoạn, bao gồm đoạn đèn LED xếp lại với thành hình chữ nhật Khi đoạn lập trình để chiếu sáng hiển thị chữ số hệ thập phân thập lục phân Đôi LED số hiển thị dấu thập phân có nhiều LED nối với để hiển thị số lớn chữ số. Led chia làm loại: -Cathode chung (CC): Trong hình Cathode chung tất cực Cathode đèn LED nối chung với với mức logic “0” nối Mass (Ground) Các chân lại chân Anode nối với tín hiệu logic mức cao (HIGHT) hay mức logic thơng qua 1 điện trở giới hạn dịng điện để đưa điện áp vào phân cực Anode từ a đến G để hiển thị tùy ý. -Anode chung (CA): Trong hình hiển thị Anode chung, tất kết nối Anode LED nối với mức logic “1”, phân đoạn LED riêng lẻ sáng cách áp dụng cho tín hiệu logic “0” mức thấp “LOW” thơng qua điện trở giới hạn dịng điện để giúp phù hợp với cực Cathode với đoạn LED cụ thể từ a đến g. Hình 3.Cấu tạo led 1.3.3 cảm biến quang Cảm biến quang gì? Cảm biến quang tiếng Anh gọi Photoelectric sensor tạo thành linh kiện quang điện Đây thiết bị phát chùm tia sáng chiếu vào vật thể dạng tần số khiến chúng thay đổi tính chất cần phát điện Khi vật thể qua ảnh hưởng đến tần số thu sáng Dựa vào tượng phát xạ điện tử cực Cathode tín hiệu quang chuyển đổi thành tín hiệu điện mà có nguồn ánh sáng chiếu vào Ngày nay, cảm biến quang sử dụng rộng rãi nhiều nhà máy, xí nghiệp cơng nghiệp Với tính đặc biệt phát vât thể từ xa, đo lường khoảng cách đến vật thể tốc độ di chuyển đối tượng Hình 4.hình ảnh cảm biến quang Cấu tạo nguyên lý hoạt động cảm biến quang -Cấu tạo: Cảm biến quang cấu thành từ phận phát ánh sáng, thu ánh sáng bo mạch xử lý tín hiệu điện +Bộ phát ánh sáng: Bộ phận đảm nhận vị trí cảm biến quang nhiệt, phát ánh sáng dạng xung Tùy vào hãng sản xuất có tần số ánh sáng riêng biệt thiết kế Bộ phận bổ trợ cho phận thu ánh sáng phận biệt nguồn sáng từ cảm biến nhiều nguồn khác +Bộ phận thu sáng: Bộ phận phận tiếp nhận ánh sáng sau truyền tín hiệu đến phận xử lý +Mạch xử lý tín hiệu điện: Bộ phận tiếp nhận tín hiệu từ phận thu sáng chuyển tín hiệu theo tỉ lệ tranzito thành chế độ ON/OFF, tín hiệu có độ khuếch đại rộng Hình 5.Cấu tạo cảm biến quang Nguyên lý hoạt động cảm biến quang : Bộ phận phát sáng phát ánh sáng dạng tần số, từ phận thu sáng tiếp nhận ánh sáng phân loại chuyển đến phận xử lý tín hiệu điện Ở tín hiệu chuyển đổi theo tỉ lệ tranzito thành hai chế độ ON/OFF Và tín hiệu dùng NPN, PNP 10 CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 2.1 sơ đồ khối tổng quát mạch KHỐI NÚT NHẤN HANSW KHỐI ĐẦU VÀO(CẢM BIẾN) KHỐI CÁCH LY KHỐI VI XU LÝ KHỐI HIỂN THỊ KHỐI NGUỒN Hình 6.sơ đồ khối tổng quát - Khối nguồn cung cấp nguồn cho toàn mạch: Khối cảm biến, khối vi xử lý,Khối hiển thị Khối điều khiển Khối điều chỉnh ngày hẹn nút bấm RESET, UP, DOWN Khối điều khiển vi điều khiển pic16f877a nhận tín hiệu từ Khối cảm biến khối cách ly, sau thực xử lý hiển thị led Khối hiển thị LED THANH nhận tín hiệu từ khối điều khiển để hiển thị thông tin 11 2.2.1 Khối Vi điều khiển: RE PGD PGC C2 22 J1 SIL-100-06 X1 20M PGC PGD C1 22 13 14 RE R1 10k 10 BT1 RESET C3 U1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT 100nF RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 PIC16F877A Hình 7.khối vi điều khiển Với thạch anh giao động 20M để tạo xung nhịp cho PIC Ta sử dụng nhiều loại thạch anh khác cho PIC 4M, 8M…, Tùy vào mục đích sử dụng Để tốc độ xử lý lệnh nhanh ta dùng thạch anh lớn Tuy nhiên thạch anh không lớn giới hạn chíp sản xuất ta dùng PIC16F877A theo datasheet từ nhà sản xuất thạch anh khơng lớn 20M Nếu dùng thạch anh lớn chíp không hoạt động Ngược lại dùng thạch anh q nhỏ tốc độ xử lý lệnh chíp thấp chậm Với thạch anh 20M chu kỳ xung nhịp 0,2us (Có thể thực lệnh (ASM) vòng 0,2us) Còn với thạnh anh 4M chu kỳ thấp 1us Vậy số lệnh nhiều tốc độ xử lý thấp dùng thạch anh tốc độ thấp, điều tạo khó khăn lập trình địi hỏi phải lập thình tốt, phải tiết kiệm dịng lệnh Vì để đễ dàng lập thình mạch hoạt động nhanh ta dùng thạnh anh có giá trị lớn.Nút nhấn BT1 reset chípp Tụ C3 0.1u làm tụ Reset tự động cho vi xử lý cấp nguồn R1 10k trở kéo cho chân Reset 12 2.2.2.Khối nút nhấn R21 R17 R16 BT4 BT3 BT2 10k 10k RESET - 10k + Hình 8.khối nút nhấn Sử dụng nút nhấn tiếp điểm để tạo mức thay đổi logic giúp vi điều khiển hiểu đươc ta tác động nhấn nút Các điện trở R21 R17 R16 điện trở kéo lên để xác định mức cao không nhấn nút Các nút nhân BT2, BT3, BT4 nhấn kéo dẫn điện xuống mức 13 LED2 R3 10 10 A B C D E F G H A B C D E F G H AC2 LED1 AC2 2.2.3.Khối thị LED 330 R18 330 R10 330 Hình 9.khối hiển thị 2.2.4.Khối cảm biến D3 IR T R20 D2 IR-R R19 330 10k Hình 10.khối cảm biến Cái biến trở nút điện trở biến thiên Nó mạch dùng để điều chỉnh giá trị trở kéo lên LED thu tức chỉnh thay đổi dịng dẫn LED thu chỉnh nhỏ lại dịng dẫn LED thu cần phải tăng lên tức địi hỏi phải chiều sáng tia hồng ngoại có cường độ lớn đạt đến ngưỡng thay đổi 14 trạng thái Trong trường hợp để giảm nhiểu từ ánh sáng bên ngồi tác động tới nhiên độ nhạy giảm theo chỉnh nhỏ dịng dẫn max LED thủ khơng đủ để kéo giá trị chuyển mức Cịn ngược lại chỉnh cao lên dễ kích hoạt làm tăng nhiểu từ ánh sáng bên ngồi Cho nên thiết kế biến trở để thay đổi tùy vào mội trường lắp đặt cụ thể 2.2.4.khối cách ly Hình 11.khối cách ly Dùng để cách ly cảm biến với vi điều khiển cảm biến dùng nguồn 12v cịn VDK dùng nguồn 5v nên cần cách ly 15 CHƯƠNG 3: KẾT QUẢ THỰC HIỆN SẢN PHẨM 3.1 sơ đồ ngun lý tồn mạch Hình 12.sơ đồ ngun lý tồn mạch 3.2.thiết kế mạch in Hình 13.mạch in 3.3.lưu đồ giải thuật 16 BẮT ĐẦU ĐỌC GIÁ TRỊ SÔ ĐẾM LƯU TRONG EEPROM KHỞI TẠO ADC CHO PIC XUẤT GIÁ TRỊ ĐẾM RA LED DOAN TẠO THỜI GIAN TRỄ ĐỂ CHUYỂN ĐỔI ADC HOÀN THÀNH ĐỌC GIÁ TRỊ CẢM BIẾN TỪ ADC Đ BÁO MỨC ĐIỆN ÁP CỦA CẢM BIẾN = TỨC KHƠNG CĨ VẬT CẢN Đ BÁO MỨC ĐIỆN ÁP CỦA CẢM BIẾN = TỨC CÓ VẬT CẢN Đ TĂNG SỐ ĐẾM GIỚI HẠN ĐẾN 10 LƯU GIÁ TRỊ VÀO LẠI EEPROM GIÁ TRỊ>70 S GIÁ TRỊ KHƠNG VẬT S Đ NHẤN RESET SỐ ĐẾM CHỜ NÚT NHẢ ĐẶT LẠI SỐ ĐẾM VỀ 00 LƯU GIÁ TRỊ VÀO LẠI EEPROM S NHẤN GIẢM SỐ ĐẾM Đ CHỜ NÚT NHẢ GIẢM SỐ ĐẾM GIỚI HẠN ĐẾN 00 LƯU GIÁ TRỊ VÀO LẠI EEPROM Đ CHỜ NÚT NHẢ TĂNG SỐ ĐẾM GIỚI HẠN ĐẾN 10 S NHẤN TĂNG SỐ ĐẾM LƯU GIÁ TRỊ VÀO LẠI EEPROM S 17 3.4 chương trình điều khiển #include void main() // chuong trinh chinh { so_dem=read_eeprom(0); // doc so dem cu duoc luu eeprom tai dia chi setup_adc_ports(AN0_AN1_AN3); // thiêt lap kenh ADC AN0 lam ngo vao ADC dung de doc tin hieu tu mat thu hong ngoai setup_adc(ADC_CLOCK_INTERNAL); // thiet lap xung cap cho ADC xung noi set_adc_channel(0); // dat kenh cho ADC kenh (AN0) while(TRUE) // vong lap vo han { output_b(ma7doan[so_dem/10%10]&cham); // xuât ma LED doan hang chuc port B output_c(ma7doan[so_dem%10]); // xuât ma LED doan hang don vi port C set_adc_channel(0); delay_us(25); ty_le_cb1=read_adc()*0.39; // doc ty lê % tín hieu tu mat thu hơng ngoai (0-10); gia tri adc max=255; 0,39=100/255; if(ty_le_cb1>70) // ty le dan cua mat thu lon hon nguong (70) muc 1, tuc khong co vat can { muc1=1; // xac dinh muc 1; cham=0xff; // tat LED bao co vat can } 18 if(ty_le_cb170) // ty le dan cua mat thu lon hon nguong (70) muc 1, tuc khong co vat can { muc2=1; // xac dinh muc 1; cham=0xff; // tat LED bao co vat can } if(ty_le_cb210 ) // neu so dem > 10 { so_dem=10; // nap lai so dem = 10 } 20