ĐẾM SẢN PHẨM VÀ HIỂN THỊ LÊN LED 7 ĐOẠN SỬ DỤNG CẢM BIẾN HỒNG NGOẠI CÓ THIẾT LẬP SỐ SẢN PHẨMHỆ THỐNG NHÚNG (CODE PIC+MÔ PHỎNG PROTEUS)ĐẾM SẢN PHẨM VÀ HIỂN THỊ LÊN LED 7 ĐOẠN SỬ DỤNG CẢM BIẾN HỒNG NGOẠI CÓ THIẾT LẬP SỐ SẢN PHẨMHỆ THỐNG NHÚNG (CODE PIC+MÔ PHỎNG PROTEUS)
TỔNG QUAN VỀ ĐỀ TÀI
Đặt vấn đề, lý do chọn đề tài
Trong kỷ nguyên công nghệ hiện đại, sự phát triển mạnh mẽ của khoa học kỹ thuật đã dẫn đến sự ra đời của các mô hình đếm sản phẩm và băng truyền đếm sản phẩm, nhờ vào công nghệ chế tạo vi mạch và lập trình nhúng cho vi điều khiển Vi điều khiển với thiết kế nhỏ gọn, chi phí thấp, tính linh động cao và khả năng tiết kiệm năng lượng đang trở thành giải pháp tối ưu cho ngành sản xuất.
Hiện nay, vi điều khiển đã phát triển mạnh mẽ với mật độ tích hợp cao, khả năng xử lý mạnh, tiêu thụ năng lượng thấp và giá thành hợp lý Khi được cài đặt phần mềm nhúng, các vi điều khiển này có thể hoạt động độc lập cho các ứng dụng cụ thể.
Dựa trên những bài học thực hành trên lớp và các chuyến tham quan doanh nghiệp sản xuất, chúng tôi đã nhận thấy nhiều quy trình trong sản xuất đã được tự động hóa Một trong những khâu đơn giản nhưng quan trọng trong dây chuyền sản xuất tự động là việc đếm số lượng sản phẩm được thực hiện một cách tự động.
Hình 1.1: Một số bộ đếm sản phẩm thường được sử dụng trong sản xuất
Đối với các doanh nghiệp vừa và nhỏ, việc áp dụng tự động hóa hoàn toàn trong quy trình đếm sản phẩm và đóng bao bì vẫn chưa phổ biến, và họ vẫn phụ thuộc vào lao động thủ công.
Chúng em mong muốn thực hiện một sáng kiến nhỏ nhằm giảm bớt sự vất vả cho người lao động và nâng cao hiệu suất làm việc Để đạt được điều này, chúng em đã quyết định thiết kế mô hình mạch đếm sản phẩm, một giải pháp gần gũi và thực tiễn Mô hình này bao gồm các phần chính như: module cảm biến hồng ngoại, module hiển thị LED 7 đoạn, module nguồn cung cấp, module vi điều khiển PIC16F877A và module nút bấm điều khiển.
Hình 1.2: Ví dụ về hệ thống bộ đếm sản phẩm
Từ những ý tưởng thiết kế trên, nhóm chúng em chọn đề tài tiểu luận nghiên cứu về:
Thiết kế mạch đếm sản phẩm sử dụng cảm biến hồng ngoại và hiển thị số lượng lên đèn LED 7 đoạn nhằm tối ưu hóa ứng dụng trong thực tế Mạch này cho phép người dùng dễ dàng thiết lập số sản phẩm cần đếm, mang lại hiệu quả cao trong việc quản lý hàng hóa.
Chính vì vậy, ý tưởng tìm hiểu và nghiên cứu mô hình đếm sản phẩm ra đời nhằm:
Ứng dụng thực tiễn được những kiến thức đã học ở trường
Tìm hiểu cách thức hoạt động của các module trong mô hình đếm sản phẩm
Nghiên cứu phát triển đưa vào thực tế
Phát triển thêm những kiến thức còn hạn hẹp của bản thân
1.2 Tổng quan tình hình nghiên cứu trong và ngoài nước có liên quan đến đề tài
Hiện nay, nhiều quốc gia đã phát triển và thương mại hóa các mô hình đếm sản phẩm, máy đếm tiền và máy đếm số lượng xe ra vào, nhằm cung cấp giải pháp cho doanh nghiệp trong việc tự động hóa hoàn toàn dây chuyền sản xuất.
1.3 Tính cấp thiết của đề tài
Hiện nay, các mô hình đếm sản phẩm đang ngày càng được ưa chuộng và thương mại hóa trên thị trường Nhóm chúng tôi đã tiến hành nghiên cứu nguyên lý hoạt động của từng module trong mô hình mạch đếm sản phẩm, đồng thời mô hình hóa và khắc phục một số lỗi còn tồn tại Qua đó, chúng tôi phát triển và thương mại hóa mô hình mạch đếm sản phẩm, ứng dụng hiệu quả trong thực tế.
Mô hình mạch đếm sản phẩm mang lại lợi ích kinh tế cho doanh nghiệp và cơ quan xí nghiệp bằng cách giảm chi phí nhân công và quản lý Nó cũng hỗ trợ quá trình tự động hóa công nghiệp và cung cấp thông tin chính xác, giúp tối ưu hóa hoạt động sản xuất.
Tối ưu hóa mô hình mạch đếm sản phẩm độ chính xác cao
Giảm chi phí nhân công cho các doanh nghiệp, mô hình mạch đếm sản phẩm hoàn toàn tự động hóa, quản lý, cung cấp thông tin theo yêu cầu
Nâng cao kiến thức bản thân
Thực nghiệm các kiến thức đã học được ở trường
1.5 Đối tượng - phạm vi nghiên cứu Đối tượng nghiên cứu: Mô hình mạch đếm sản phẩm gồm các module nguồn, module cảm biến hồng ngoại, module hiển thị LED 7 đoạn, module vi điều khiển PIC16F877A, module nút bấm điều khiển
Tìm hiểu thông qua về lý thuyết của đề tài
Đọc hiểu một số tài liệu liên quan đến đề tài
Thảo luận nhóm để thống nhất ý kiến
Thiết kế mô hình phần cứng
Tham khảo ý kiến chuyên gia
Thực nghiệm và kiểm chứng đối tượng
Báo cáo và nghiệm thu đề tài tiểu luận
Tính cấp thiết của đề tài
Hiện nay, các mô hình đếm sản phẩm đang được ưa chuộng và thương mại hóa trên thị trường Nhóm chúng tôi đã tiến hành nghiên cứu nguyên lý hoạt động của từng module trong mô hình mạch đếm sản phẩm, đồng thời thực hiện mô hình hóa và khắc phục một số lỗi còn tồn tại Qua đó, chúng tôi phát triển và thương mại hóa mô hình mạch đếm sản phẩm, ứng dụng hiệu quả trong thực tế.
Mô hình mạch đếm sản phẩm mang lại lợi ích kinh tế cho doanh nghiệp và cơ quan xí nghiệp bằng cách giảm chi phí nhân công và quản lý Nó hỗ trợ quá trình tự động hóa công nghiệp, đồng thời cung cấp thông tin chính xác và kịp thời.
Mục tiêu nghiên cứu
Tối ưu hóa mô hình mạch đếm sản phẩm độ chính xác cao
Giảm chi phí nhân công cho các doanh nghiệp, mô hình mạch đếm sản phẩm hoàn toàn tự động hóa, quản lý, cung cấp thông tin theo yêu cầu
Nâng cao kiến thức bản thân
Thực nghiệm các kiến thức đã học được ở trường.
Đối tượng - phạm vi nghiên cứu
Mô hình mạch đếm sản phẩm bao gồm các thành phần chính như module nguồn, module cảm biến hồng ngoại, module hiển thị LED 7 đoạn, module vi điều khiển PIC16F877A và module nút bấm điều khiển.
Phương pháp nghiên cứu
Tìm hiểu thông qua về lý thuyết của đề tài
Đọc hiểu một số tài liệu liên quan đến đề tài
Thảo luận nhóm để thống nhất ý kiến
Thiết kế mô hình phần cứng
Tham khảo ý kiến chuyên gia
Thực nghiệm và kiểm chứng đối tượng
Báo cáo và nghiệm thu đề tài tiểu luận
THIẾT KẾ SƠ ĐỒ KHỐI
Thiết kế sơ đồ khối
2.1 Sơ đồ khối tổng quát
Theo yêu cầu của đề tài, nhóm chúng em đã thiết kế sơ đồ khối cho mạch đếm sản phẩm, như thể hiện trong hình 2.1, bằng cách sử dụng phần mềm Visio để vẽ.
Hình 2.1: Sơ đồ khối mạch đếm sản phẩm
Khối nguồn: có chức năng cấp nguồn cho toàn bộ mạch để hoạt động (sử dụng nguồn
Khối cảm biến hồng ngoại: có chức năng phát hiện và đếm nếu 1 sản phẩm đi qua
Khối nút nhấn: điều khiển và điều chỉnh hiển thị số sang led 7 đoạn
Led 7 đoạn (gồm có 2 led 7 đoạn): có chức năng hiển thị số sản phẩm đi qua cảm biến
Cảm biến Led đơn bao gồm hai đèn Led: một đèn sáng lên khi phát hiện có vật di chuyển qua đầu cảm biến, trong khi đèn còn lại sáng khi nút setup được kích hoạt để cài đặt số lượng sản phẩm.
Led matrix: Hiển thị chữ “D” khi số sản phẩm đi qua cảm biến bằng với số lượng sản phẩm cài đặt từ trước
2.2.1 Giải thích sơ đồ khối
Sau khi cấp nguồn cho mạch, tín hiệu điện sẽ được kích hoạt Người dùng cần ấn các nút “Set up”, “Tăng”, “Giảm” để cài đặt số lượng sản phẩm hiển thị trên led 7 đoạn Khi sản phẩm đi qua, cảm biến sẽ kích hoạt mức 1 và đèn báo tín hiệu sẽ sáng lên Khi số sản phẩm qua cảm biến đạt mức đã cài đặt, led matrix sẽ hiển thị chữ “D” để thông báo đủ số lượng Nhấn nút “Reset” để đưa số lượng sản phẩm về trạng thái ban đầu trên led 7 đoạn.
2.2.2 Khối hiển thị: a Led 7 đoạn
Led 7 đoạn có chức năng hiển thị số thập phân cho biết kết quả sau khi xử lý, trong mạch đếm sản phẩm sẽ cho biết kết quả đếm là số lượng sản phẩm
Có 2 loại led 7 đoạn là anode chung và cathode chung
Led 7 đoạn có kí hiệu, sơ đồ chân như hình sau:
Hình 2.2: Kí hiệu và hình ảnh led 7 đoạn
Led 7 đoạn có cấu tạo là các led đơn được sắp xếp theo vị trí để khi sáng hoặc tắt tạo thành 1 số thập phân từ 0 đến 9
Dòng cho mỗi đoạn từ 5 đếm 15 mA và điện áp cho các led nhỏ là 2V
Nhóm em tiến hành chọn led loại catot chung b Led đơn
Dùng để hiển thị mức tín hiệu cho các chân cảm biến và chân setup
Hình 2.3: Chân led đơn và ảnh thực tế c Led Matrix
Dùng để hiển thị chữ D khi đã đủ sản phẩm cài đặt
Led Matrix bao gồm 8 Led đơn, với 8 chân kết nối đến cột và 8 chân kết nối đến hàng Để hoạt động, nó cần 8 chân của vi điều khiển để kết nối với hàng và 8 chân vi điều khiển khác để kết nối với cột.
- Để 1 Led sáng: cấp điện áp VCC và GND vào 2 chân của Led đó
- Trong 1 thời điểm chỉ điều khiển được 8 Led
Hình 2.4: Sơ đồ chân led matrix 8x8
Trong ma trận điểm, các LED được kết nối theo hàng và cột, giúp giảm số lượng chân I/O cần thiết để điều khiển Với ma trận 8x8, chỉ cần 64 chân I/O để hiển thị mỗi điểm ảnh Tất cả các cực dương được nối theo hàng từ R1 đến R8 và theo cột từ C1 đến C8, từ đó giảm số chân I/O xuống còn 48 chân.
Nguyên lý quét Led matrix:
Chốt tín hiệu vào từng hàng và từng cột
Duy trì trạng thái trong 1 khoảng thời gian đủ để mắt người cảm nhận được
Chốt tín hiệu vào các hàng và các cột tiếp theo
Sử dụng vi điều khiển PIC 16F877A để điều khiển cho bộ đếm
Hình 2.5: Ảnh vi điều khiển PIC 16F877A và sơ đồ chân
Chúng ta sẽ sử dụng dạng nút nhấn 4 chân có sơ đồ như hình
Hình 2.6: Ảnh nút bấm 4 chân và sơ đồ chân
Sử dụng cảm biến phát hiện vật cản để đếm số lần sản phẩm đi qua
Hình 2.7: Cảm biến phát hiện vật cản hồng ngoại trong thực tế và trong proteus
Điện áp hoạt động: 3.3 - 5VDC
Phạm vi hoạt động: từ 2 - 80 cm
Bộ so sánh sử dụng LM393, làm việc ổn định
Điện áp làm việc: 3.3V – 5V DC
Khi bật nguồn, đèn báo nguồn màu đỏ sáng
Lỗ vít 3 mm, dễ dàng cố định, lắp đặt
Các mô-đun đã được so sánh điện áp ngưỡng thông qua chiết áp Khi sử dụng ở chế độ thông thường, người dùng không nên tự ý điều chỉnh chiết áp để đảm bảo hiệu suất và an toàn cho thiết bị.
VCC: điện áp chuyển đổi từ 3.3V đến 5V (có thể được kết nối trực tiếp đến vi điều khiển 5V và 3.3V)
OUT: đầu ra kỹ thuật số (0 và 1)
2.3 Chọn linh kiện sử dụng cho từng khối chức năng
Khối nguồn: Sử dụng nguồn 5 VDC
Khối cảm biến: Sử dụng cảm biến vật cản hồng ngoại
Khối vi điều khiển: Sử dụng vi điều khiển PIC 16F877A
Khối nút nhấn: Sử dụng nút nhấn điều khiển (4 nút nhấn)
Khối hiển thị:Sử dụng 2 led 7 đoạn, 1 led matrix và 2 led đơn
THIẾT KẾ MẠCH VÀ LẬP TRÌNH
Thiết kế mạch mô phỏng trên phần mềm Proteus
Để thiết kế mạch mô phỏng hiệu quả, phần mềm Proteus là công cụ lý tưởng cho người dùng Đây là một phần mềm hữu ích giúp người dùng làm quen với các vi xử lý và vi điều khiển, hỗ trợ quá trình phát triển sản phẩm thực tế.
Hình 3.1: Giao diện sau khi mở phần mềm Proteus
Quá trình thực hiện vẽ mạch mô phỏng trên phần mềm Proteus trải qua 04 bước:
Bước 2: Đấu nối các linh kiện, thành phần với nhau
Bước 3: Hiệu chỉnh, bố trí lại mạch
Bước 4: Nạp chương trình vào cho VĐK và chạy mô phỏng
3.1.1 Chọn linh kiện sử dụng cho đề tài
Hình 3.2: Chọn linh kiện trong thư viện Proteus
Kí hiệu linh kiện sử dụng trong hệ thống:
7SEG-MPX2-CA-BLUE: Led 7 đoạn Catot chung hiển thị số màu xanh
BUTTON: Nút bấm điều khiển chương trình
IR OBSTACLE SENSOR: Cảm biến tiệm cận hồng ngoại
PIC 16F877A: Vi điều khiển PIC 16F877A
LED: Led đơn hiển thị màu xanh
LOGICSTATE: ON/OFF tín hiệu nhận được cho chân TestPin của cảm biến
MATRIX 8x8 - RED: Led ma trận 8x8 hiển thị màu đỏ
3.1.2 Đấu nối chân các linh kiện
Hình 3.3: Sơ đồ đấu nối các chân linh kiện (1)
Hình 3.4: Sơ đồ đấu nối các chân linh kiện (2)
Khi sử dụng phần mềm Proteus để đấu nối chân linh kiện, bạn có thể thực hiện việc nối tắt các chân và đặt tên cho các đầu dây Điều này giúp mạch trở nên gọn gàng và trực quan hơn.
3.1.3 Đấu nối chi tiết từng linh kiện với vi điều khiển PIC 16F877A
3.1.3.1 Đấu nối nút nhấn với PIC 16F877A
Hình 3.5: Đấu nối nút nhấn với PIC 16F877A
3.1.3.2 Đấu nối cảm biến với PIC 16F877A
Hình 3.6: Đấu nối cảm biến với PIC 16F877A
3.1.3.3 Đấu nối khối hiển thị với PIC 16F877A
Hình 3.7: Đấu nối khối hiển thị với PIC 16F877A
Lập trình cho mạch bằng phần mềm CCS
Hình 3.8: Giao diện phần mềm CCS
Dùng phần mềm CCS để lập trình và biên dịch chương trình cho vi điều khiển Pic 16F877A.
Các bước để viết hoàn chỉnh một chương trình cho vi điều khiển PIC 16F877A:
Bước 1: Tạo 1 Project sử dụng Pic Wizard
Hình 3.10: Chọn vi điều khiển PIC16F877A, tần số thạch anh 20MHz
Hình 3.11: Giao diện CCS sau khi tạo project và khai báo vi điều khiển
Hình 3.12: Viết code chương trình sau khi thực hiện lần lượt các bước trên
Bước 3: Kiểm tra lỗi, biên dịch (Compile) để tạo file hex
Hình 3.13: Nạp file hex và chọn tần số cho PIC 16F877A
Viết chương trình và giải thích lệnh
#use delay(clock M) int8 i=0 ; int8 a=0,b=0 ; int8 maled[]={0xC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; // ma led
25 void hthi(int x){ // quet led
OUTPUT_HIGH(pin_e0); delay_ms(1);
OUTPUT_HIGH(pin_e1); delay_ms(1);
{ i=read_eeprom(0); // bien nho khi mat dien
Đoạn mã trên thiết lập các chân của vi điều khiển cho đầu vào và đầu ra, khởi động hiển thị giá trị LED từ 0 Khi giá trị i bằng b, chương trình sẽ hiển thị chữ D bằng cách điều khiển các chân B và C với các giá trị nhị phân khác nhau, mỗi lần hiển thị đều có độ trễ 1 mili giây.
26 delay_ms(1); output_B(0b00000000); output_B(0b00100000); output_C(0b11011011); delay_ms(1); output_B(0b00000000); output_B(0b01000000); output_C(0b11101011); delay_ms(1); output_B(0b00000000); output_B(0b10000000); output_C(0b11110011); delay_ms(1); output_B(0b00000000);
} if (i>b) i=1; // khi san pham lon hon sp cai dat se quay ve dem lai hthi(i); if(input(pin_A0)==0){ // an nut cam bien while(input(pin_A0)==0){ hthi(i);
} i++; if (i=0) i=0; write_eeprom(0, i); // ghi so dem vao EEPROM tai dia chi 0 hthi(i);
} if(input(pin_A3)==0){ // An nut setup while(input(pin_A3)==0){} // Chua tha ko lam gi
OUTPUT_HIGH(pin_e2); a=1; while(a=1){ hthi(b); if(input(pin_A1)==0){ // an nut tang while(input(pin_A1)==0){ hthi(b);
} if(input(pin_A2)==0){ // an nut giam while(input(pin_A2)==0){ hthi(b);
} if(input(pin_A3)==0){ while(input(pin_A3)==0){}
Giải thích các lệnh sử dụng trong chương trình
Khai báo vi xử lý 16f877a , khai báo các biến i,a,b và mã LED:
#use delay(clock M) int8 i=0 ; int8 a=0,b=0 ; int8 maled[]={0xC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
Hiển thị LED 7 đoạn bằng phương pháp “quét LED”: void hthi(int x){
OUTPUT_HIGH(pin_e0); delay_ms(1);
OUTPUT_HIGH(pin_e1); delay_ms(1);
Khai báo các chân vào - ra của vi xử lý: set_tris_A(0xFF); set_tris_D(0x00);
Bắt đầu hiển thị giá trị 00 trên LED matrix khi sản phẩm được cài đặt Nếu sản phẩm lớn hơn giá trị cài đặt, quay về 01 Đoạn mã kiểm tra điều kiện và thực hiện hiển thị chữ D trên LED matrix bằng cách sử dụng các lệnh output_B và output_C kết hợp với delay_ms để tạo hiệu ứng Cụ thể, các giá trị nhị phân được gửi đến các chân LED để hiển thị chữ D theo từng bước, với thời gian trễ giữa các lần hiển thị nhằm đảm bảo sự rõ ràng và mượt mà trong quá trình trình diễn.
29 output_B(0b00000000); output_B(0b10000000); output_C(0b11110011); delay_ms(1); output_B(0b00000000);
} if (i>b) i=1; // sản phẩm hiển thị lớn hơn sp cài đặt quay về đếm từ 01 sp hthi(i);
Khi nhấn nút Cảm biến, giá trị sản phẩm trên màn hình LED 7 thanh sẽ tăng lên từng đơn vị từ 00 đến 99 Cụ thể, khi điều kiện input(pin_A0) bằng 0, hệ thống sẽ tiếp tục hiển thị giá trị cho đến khi nút được thả ra.
} i++; // Tăng 1 giá trị if (i=0) i=0; // Đến 99 quay về 00 hthi(i);
Khi nhấn nút SETUP, chế độ SETUP sẽ được kích hoạt và đèn LED đơn sẽ sáng lên Nhấn nút TĂNG để tăng giá trị lên 1 đơn vị, hoặc nhấn nút GIẢM để giảm giá trị đi 1 đơn vị Để thoát khỏi chế độ SETUP, nhấn nút SETUP lần nữa và đèn LED đơn sẽ tắt.
OUTPUT_HIGH(pin_e2); // LED đơn sáng a=1; while(a=1){ // CT SETUP hthi(b); if(input(pin_A1)==0){ // Ấn nút Tăng while(input(pin_A1)==0){ hthi(b);
} if(input(pin_A2)==0){ // Ấn nút Giảm while(input(pin_A2)==0){
} if(input(pin_A3)==0){ // Ấn nút SETUP lần 2 while(input(pin_A3)==0){}
OUTPUT_LOW(pin_e2); // Led đơn tắt a=0; break; // Thoát câu lệnh
KẾT QUẢ THỰC HIỆN VÀ KẾT LUẬN
Kết quả
Sau khi hoàn tất thiết kế mạch và lập trình cho hệ thống, chúng tôi nhận thấy rằng mạch hoạt động hoàn chỉnh trên mô phỏng, nhờ vào việc sử dụng phần mềm mô phỏng Proteus và phần mềm lập trình PIC CCS Compiler.
Đánh giá và kết luận
Dựa trên lý thuyết đã học, chúng tôi đã thiết kế một hệ thống có độ tin cậy chấp nhận được với quy mô đơn giản hơn Để ứng dụng vào thực tế, hệ thống này cần được điều chỉnh nhằm nâng cao tính ổn định và kết nối hiệu quả với các bộ phận cơ khí.
Mặc dù đã nhận được sự hướng dẫn tận tình từ cô giáo, nhưng do kiến thức còn hạn chế và thời gian ngắn, tiểu luận của chúng em vẫn còn nhiều thiếu sót Qua quá trình thực hiện, chúng em đã tích lũy được nhiều kinh nghiệm quý báu Đề tài này có tính ứng dụng cao trong thực tế, vì vậy chúng em sẽ nỗ lực hoàn thiện để đáp ứng tốt hơn nhu cầu thực tiễn.
Qua quá trình thiết kế và mô phỏng chúng em nhận thấy đề tài có những ưu, nhược điểm sau:
Mạch này có nhiều ưu điểm, bao gồm khả năng áp dụng linh hoạt theo nhu cầu và điều kiện cụ thể của từng người dùng Hệ thống hoạt động ổn định và ít bị ảnh hưởng bởi các yếu tố bên ngoài Bên cạnh đó, thiết kế mạch đơn giản giúp tiết kiệm chi phí hiệu quả.
Nhược điểm: o Thuật toán chưa tối ưu
Với những kết quả đạt được như trên, hệ thống rất hữu ích khi ứng dụng được cả trong nghiên cứu lẫn sử dụng thực tế