Ở các nhà máy sản suất các sản phẩm tiêu dùng, một trong những khâu quan trọng nhất là khâu thực hiện đếm và phân loại sản phẩm.. Khâu này hoạt động một cách tự động thì giúp nhà náy tiế
GIỚI THIỆU
ĐẶT VẤN ĐỀ
Trong thời đại công nghệ không ngừng phát triển hiện nay, cuộc sống của mỗi chúng ta ngày càng tiện nghi hơn đồng thời nhu cầu của mỗi con người cũng theo đó mà tăng lên Cùng với sự phát triển mạnh mẽ của khoa học kĩ thuật trong đời sống đã thúc đẩy việc sản xuất tăng mạnh Trong lĩnh vực sản suất thì quá trình tự động hóa cũng là yếu tố cực kì quan trọng, thay vì thuê hàng trăm công nhân đến để sản xuất thì bây giờ máy móc đang dần thay thế con người trong việc sản xuất Bởi vì máy móc thực hiện một cách chính xác, ổn định, năng suất ngày càng tăng cao, ít sai sót trong quá trình hoạt động và có thể hoạt động liên tục trong thời gian dài Ở các nhà máy sản suất các sản phẩm tiêu dùng, một trong những khâu quan trọng nhất là khâu thực hiện đếm và phân loại sản phẩm. Khâu này hoạt động một cách tự động thì giúp nhà náy tiết kiệm được thời gian, chi phí đồng thời nâng cao được năng suất sản xuất.
Vì lý do trên nên chúng tôi thực hiện đề tài: “Mạch đếm và phân loại sản phẩm theo màu sắc”.
MỤC TIÊU ĐỀ TÀI
Vận dụng kiến thức đã học về vi điều khiển, lập trình vi điều khiển và các môn lý thuyết để thực hiện đề tài.
Thiết kế và thi công thành công mạch hiển thị thời gian, đếm và phân loại sản phẩm hiển thị trên màn hình LCD.
Mạch thiết kế cần đạt các yêu cầu:
- Mạch hoạt động ổn định và chính xác theo thời gian.
- Có nút nhấn reset để điều chỉnh số sản phẩm về không.
- Phân loại sản phẩm theo màu sắc khác nhau.
- LCD hiển thị ngày – tháng – năm, giờ - phút - giây, số sản phẩm theo màu sắc, tổng số sản phẩm, ca làm việc.
- Bố trí linh kiện hợp lí, thẩm mỹ.
NỘI DUNG THỰC HIỆN
- Tìm hiểu về vi điều khiển Pic16f887, các tập lệnh điều khiển, cấu trúc chân điều khiển.
- Tìm hiểu phần mềm CSS lập trình cho vi điều khiển.
- Tìm hiểu về mạch đếm và phân loại sản phẩm.
- Thiết kế mạch đếm sản phẩm.
- Tìm hiểu về cảm biến màu sắc TCS3200.
- Tìm hiểu về DS1307 và chuẩn giao tiếp I2C
- Thiết kế và thi công toàn bộ mạch.
KẾT QUẢ ĐẠT ĐƯỢC
- Nghiên cứu và ứng được kiến thức vi điều khiển để thực hiện mạch.
- Thiết kế và hoàn thiện được mạch đếm và phân loại sản phẩm.
- Hiển thị đúng thời gian, số sản phẩm, ca làm việc.
- Đáp ứng nút nhấn tốt.
- Mạch hoạt động ổn định.
BỐ CỤC CỦA BÁO CÁO
Trình bày lý do chọn đề tài, mục tiêu đề tài, nội dung thực hiện, kết quả đạt được.
CƠ SỞ LÝ THUYẾT
GIỚI THIỆU VI ĐIỀU KHIỂN PIC16F887
2.1.1 Sơ lược về vi điều khiển Pic16f887
Pic16f887 là một chíp vi điều khiển được sản xuất bời hãng Microchip thuộc họ Pic Pic16f887 là một bộ vi điều khiển 8 bit dựa trên kiến trúc RISC bộ nhớ chương trình 8KB ISP flash có thể ghi xóa hàng nghìn lần, 256B EEPROM, một bộ nhớ RAM vô cùng lớn trong thế giới vi xử lý 8 bit (368B SRAM)
Với 33 chân có thể sử dụng cho các kết nối vào hoặc ra i/O, 32 thanh ghi, 3 bộ timer/counter có thể lập trình, có các gắt nội và ngoại (2 lệnh trên một vector ngắt), giao thức truyền thông nối tiếp UART, SPI, I2C Ngoài ra có thể sử dụng bộ biến đổi số tương tự 10 bit (ADC/DAC) mở rộng tới 11 kênh, khả năng lập trình được watchdog timer, hoạt động với 5 chế độ nguồn, có thể sử dụng tới 2 kênh điều chế độ rộng xung (PMW) …
Hình 2-1 Vi điều khiển Pic16f887
2.1.2 Sơ đồ chân kết nối
Sơ đồ chân Pic16f887 có 40 chân như hình 2-2 bên dưới.
Vi điều khiển Pic16f887 loại 40 chân, trong đó các chân đều tích hợp nhiều chức năng, chức năng từng chân được khảo sát theo port.
Hình 2-2 Sơ đồ chân của Pic16f887
- Giao tiếp: I²C, SPI, UART/USART
- Kích thước bộ nhớ: 14KB (8K x 14)
- Bộ chuyển đổi dữ liệu: A/D 14x10b
- Loại dao động: Bên trong
- Nhiệt độ hoạt động: -40°C ~ 85°C (TA)
2.1.4 Sơ đồ cấu trúc của vi điều khiển Pic16f887
Hình 2-3 Cấu trúc bên trong của vi điều khiểnCấu trúc bên trong vi điều khiển: [1]
- Có khối bộ nhớ Ram cùng với thanh ghi FSR để tính toán tạo địa chỉ cho 2 cách truy xuất gián tiếp và trực tiếp.
- Có thanh ghi lệnh (Instruction register) dùng để lưu mã lệnh nhận về từ bộ nhớ chương trình.
- Có thanh ghi bộ đếm chương trình (PC) dùng để quản lý địa chỉ của bộ nhớ chương trình.
- Có thanh ghi trạng thái (status register) cho biết trạng thái sau khi tính toán của khối ALU.
- Có khối ALU cùng với thanh ghi working hay thanh ghi A để xử lý dữ liệu.
- Có khối giải mã lệnh và điều khiển (Instruction Decode and Control).
- Có khối dao động nội (Internal Oscillator Block).
- Có khối dao động kết nối với 2 ngõ vào OSC1 và OSC2 để tạo dao động.
- Có khối các bộ định thời khi cấp điện PUT, có bộ định thời chờ dao động ổn định, có mạch reset khi có điện, có bộ định thời giám sát watchdog, có mạch reset khi phát hiện sụt giảm nguồn.
- Có khối bộ dao động cho timer1 có tần số 32kHz kết nối với 2 ngõ vào T1OSI và T1OSO.
- Có khối CCP2 và ECCP.
- Có khối mạch gỡ rối (In-Circuit Debugger IDC).
- Có khối timer0 với ngõ vào xung đếm từ bên ngoài là T0CKI.
- Có khối truyền dữ liệu đồng bộ/bất đồng bộ nâng cao.
- Có khối truyền dữ liệu đồng bộ MSSP cho SPI và I2C.
- Có khối bộ nhớ Eeprom 256 byte và thanh ghi quản lý địa chỉ EEADDR và thanh ghi dữ liệu EEDATA.
- Có khối chuyển đổi tín hiệu tương tự sang số ADC.
- Có khối 2 bộ so sánh với nhiều ngõ vào ra và điện áp tham chiếu.
- Có khối các port A, B, C, E và D.
GIỚI THIỆU MODULE THỜI GIAN THỰC DS1307
2.2.1 Sơ lược về module DS1307
IC thời gian thực (RTC) DS1307 có chức năng cung cấp thông tin thời gian hiện tại (thời gian thực): giờ, phút, giây, thứ, ngày tháng, năm một cách chính xác ngay cả khi thiết bị đã bị tắt (ngắt điện ngoài) Giao tiếp với vi điều khiển thông qua chuẩn I2C, và đóng vai trò là slave khi kết nối đến bus I2C này Có thể đếm thời gian theo định dạng 24 giờ hoặc 12 giờ với chỉ thị AM/PM Ngoài ra bên trong chíp có bộ dò phát hiện mất nguồn và tự động chuyển sang sử dụng nguồn pin dự phòng
2.2.2 Sơ đồ chân kết nối
Hình 2-5 Sơ đồ chân DS1307
- X1,X2: Đây là các chân kết nối với thạch anh tần số 32.768 KHz để kích hoạt bộ dao động nội
- VBAT: Chân này được kết với cực dương pin Lithium 3V để cấp nguồn nuôi dự phòng
- SDA: Chân dữ liệu nối tiếp (Serial Data) Đây là chân dữ liệu vào/ra của giao thức I2C Chân này cần đưa lên nguồn 5V thông qua điện trở 10kΩ.
- SCL: Chân đầu vào xung đồng hồ nối tiếp (Serial Clock) Đây là chân ngõ vào xung nhịp của giao thức I2C Chân này cũng phải được kéo đến 5V thông qua một điện trở 10kΩ.
- SQW/OUT: Ngõ xuất ra xung vuông, tần số có thể lập trình để thay đổi từ 1Hz, 4Khz, 8Khz, 32Khz Nếu không được sử dụng, chân này có thể được thả nổi.
- VCC: Chân cấp nguồn chính, khoảng 5VDC Nếu VCC không có mà VBAT có thì DS1307 vẫn hoạt động bình thường nhưng không ghi và đọc được dữ liệu.
- Điện áp làm việc: 3.3V đến 5V.
- Bao gồm 1 IC thời gian thực DS1307.
- Các thành phần cần thiết như thạch anh 32768kHz, điện trở pull-up và tụ lọc nguồn đều được tích hợp trên board.
- Có sẵn pin dự phòng duy trì thời gian khi mất điện.
- 5-pin bao gồm giao thức I2C sẵn sàng giao tiếp: INT (QWO), SCL, SDA, VCC và GND.
- Dễ dàng Thêm một đồng hồ thời gian thực để dự án của bạn.
- Nhỏ gọn và dễ dàng để lắp thêm vào bo mạch hoặc test board.
GIỚI THIỆU VỀ CẢM BIẾN MÀU SẮC TCS3200
2.3.1 Sơ lược về cảm biến màu sắc TCS3200
Module cảm biến màu TCS3200 là một module cảm biến phát hiện đầy đủ màu sắc, bao gồm cả cảm biến TCS3200 với khả năng nhận biết 3 màu cơ bản RGB và 4 led màu trắng Các TCS3200 có thể phát hiện và đo lường gần như tất cả màu sắc có thể nhìn thấy Các bộ lọc màu bên trong TCS3200 được phân bố đều khắp các mảng để loại bỏ sai lệch vị trí giữa các điểm màu Bên trong là một bộ dao động tạo ra sóng vuông ở ngõ ra tỉ lệ với cường độ màu sắc
Hình 2-6 Cảm biến màu sắc TCS3200
2.3.2 Sơ đồ chân kết nối
Hình 2-7 Sơ đồ chân cảm biến màu sắc
- S1,S0: Ngõ vào chọn tỉ lệ tần số ngõ ra.
- OE: Ngõ vào cho phép xuất tần số ở chân OUT (tích cực mức thấp).
- OUT: Ngõ ra là tần số thay đổi phụ thuộc cường độ và màu sắc.
- S2, S3: Ngõ vào chọn loại photodiode.
- Chuyển đổi cường độ ánh sáng thành tần số có độ phân giải cao.
- Lập trình lựa chọn bộ lọc màu sắc khác nhau và dạng tần số xuất ra.
- Giao tiếp trực tiếp với vi điều khiển.
- Tần số ngõ ra có độ rộng xung 50%
- Tần số tỉ lệ với ánh sáng có cường độ và màu sắc khác nhau.
- Tần số ngõ ra nằm trong khoảng 2 Hz- 500KHz.
GIỚI THIỆU VỀ LCD2004
2.4.1 Sơ lược về màn hình LCD2004
LCD 2004 là loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ hoặc số trong bảng mã ASCII Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, các chấm này kết hợp với nhau theo trình tự “ẩn” hoặc “hiện” sẽ tạo nên các kí tự cần hiển thị và mỗi ô chỉ hiển thị được một kí tự duy nhất.
LCD 2004 nghĩa là loại LCD có 4 dòng và mỗi dòng chỉ hiển thị được 20 kí tự Đây là loại màn hình được sử dụng rất phổ biến trong các loại mạch điện.
2.4.2 Sơ đồ chân kết nối
LCD có nhiều loại và số chân của chúng cũng khác nhau nhưng có 2 loại phổ biến là loại 12 chân và loại 16 chân, sự khác nhau là các chân nguồn cung cấp,còn các chân điều khiển thì không thay đổi, khi sử dụng loại LCD nào thì phải tra datasheet của chúng để biết rõ các chân [1]
Bảng 2-1 Chức năng các chân LCD
Chân số Tên chân Input/Output Chức năng tín hiệu
3 V0 Analog Điều chỉnh độ sáng màn hình
4 RS Input Lựa chọn thanh ghi:
- RS=0: Lựa chọn thanh ghi lệnh.
- RS=1: lựa chọn thanh ghi dữ liệu.
6 E Input Cho phép ghi vào LCD
Trong 16 chân của LCD được chia ra làm 4 dạng tín hiệu như sau: [1]
- Các chân cấp nguồn: Chân số 1 là chân nối mass (0V), chân thứ 2 là Vdd nối với nguồn +5V Chân thứ 3 dùng để chỉnh contrast thường nối với biến trở, chỉnh cho đến khi thấy được kí tự thì ngừng, trong bộ thực hành thì đã chỉnh rồi.
- Các chân điều khiển: Chân số 4 là chân RS dùng để điều khiển lựa chọn thanh ghi Chân R/W dùng để điều khiển quá trình đọc và ghi.
- Chân E là chân cho phép dạng xung chốt.
- Các chân dữ liệu D7÷D0: Chân số 7 đến chân số 14 là 8 chân dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD.
- Các chân LED_A và LED_K: Chân số 15, 16 là 2 chân dùng để cấp nguồn cho đèn nền để có thể nhìn thấy vào ban đêm
- Điện áp hoạt động: 5VDC
- Dòng điện tiêu thụ: 350uA - 600uA.
- Nhiệt độ hoạt động: -30°C đến 75°C.
- Kích thước 96 x 60 mm, chữ đen, nền xanh lá.
- Đèn Led nền có thể điều khiển bằng biến trở hoặc PWM.
- Có thể điều khiển bằng 6 chân tín hiệu.
- Hỗ trợ hiển thị bộ kí tự tiếng Anh và tiếng Nhật.
THIẾT KẾ HỆ THỐNG
YÊU CẦU NGƯỜI DÙNG
- Đếm chính xác số sản phẩm một cách tự động.
- Phân loại sản phẩm theo màu sắc khác nhau.
- Hiển thị ngày giờ, số ca, số sản phẩm.
- Có nút nhấn để điều chỉnh số sản phẩm về không.
- Ổn định, gọn nhẹ, dễ lắp đặt.
- Giá thành rẻ và ít tốn điện năng tiêu thụ
YÊU CẦU KỸ THUẬT
- Thu thập thông tin về sản phẩm.
- Hiển thị ngày giờ, số ca, số sản phẩm.
- Điều chỉnh được số sản phẩm.
- Mạch tiêu thụ công suất nhỏ hơn 10W.
- Múi giờ hoạt động: GMT+7.
- Giới hạn đếm tối đa: 90 sản phẩm.
- Phân loại tối đa: 3 màu.
- Sai số đếm sản phẩm: 3 sản phẩm.
THIẾT KẾ KIẾN TRÚC
Sơ đồ khối hệ thống
Hình 3-11 Sơ đồ khối hệ thống Chức năng từng khối:
- Khối thu thập dữ liệu: Phát hiện sản phẩm đi qua thu thập thông tin về màu sắc gửi tín hiệu về khối xử lý trung tâm đồng thời khối này có module thời gian thực DS1307 cập nhật thời gian thực.
- Khối nút nhấn: Điều chỉnh số sản phầm về 0.
- Khối xử lý trung tâm: Xử lý tín hiệu các khối xung quanh gửi về và đưa tín hiệu ra khối hiển thị.
- Khối hiển thị: Hiển thị ngày – tháng – năm, giờ - phút – giây, số sản phẩm theo màu sắc và tổng sản phẩm.
- Khối nguồn: Cung cấp nguồn điện cho toàn hệ thống hoạt động.
THIẾT KẾ CHI TIẾT
3.4.1 Khối thu thập dữ liệu Đối với thiết kế, dựa vào các yêu cầu hệ thống, để phát hiện sản phẩm qua với khoảng cách phát hiện từ 5 – 25cm, giá thành rẻ, hạn chế việc bị nhiễu ánh sáng, hoạt động với mức điện áp 5VDC nên chọn cảm biến vật cản hồng ngoại HW–488.
Hình 3-12 Cảm biến vật cản Đối với thu thập thông tin về màu sắc, yêu cầu nhận biết được 3 màu, giá thành rẻ, hoạt động mức điện áp 5VDC, được đóng gói sẵn, dễ lắp đạt và sử dụng nên chọn cảm biến màu sắc TCS3200.
Hình 3-13 Cảm biến màu sắcNgoài ra cùng với đó là hiển thị thời gian thực, để tiết kiệm thời gian viết code và lưu đồ đồng thời tránh được sai sót trong quá trình hoạt động cho nên chọn module hiển thị thời gian thực DS1307 để thuận tiện trong việc thực hiện mạch.
Dùng nút nhấn tròn hai chân, giao tiếp với vi điều khiển được mắc nối tiếp với một điện trở 10k.
3.4.3 Khối xử lý trung tâm
Khối xử lý trung tâm sẽ sử dụng Pic16f887, vi điều khiển này dễ sử dụng và lập trình Vi điều khiển hoạt động ổn định ở mức điện đáp 5V Có 40 chân kết nối và ba bộ định thời trong đó có 2 bộ định thời 8 bit và 16 bit Hỗ trợ nhiều giao thức nối tiếp, giao thứ song song, giao thức I2C Pic16f887 hỗ trợ chân ngắt phần cứng và bộ định thời.
Hình 3-16 Khối xử lý trung tâm
Với yêu cầu hiển thị các thông tin sau:
- Ngày – tháng – năm (dd – mm - yy), giờ - phút – giây (hh – mm – ss).
- Ca làm việc theo thời gian trong ngày Ví dụ: Ca 1: 7h – 11h
- Số sản phẩm theo màu sắc (R:xx G:xx B:xx với xx là số sản phẩm).
- Tổng số sản phẩm của 3 màu (SP: YY với yy là tổng số sản phẩm).
Vì vậy, chọn LCD2004 để hiển thị Hàng 1 sẽ hiển thị giờ - phút – giây và tổng sản phẩm Hàng 2 hiển thị ngày – tháng – năm Hàng 3 hiển thị ca làm việc.Hàng 4 hiển thị số sản phẩm theo màu sắc.
Toàn mạch hoạt động ổn định ở điện thế 5VDC cho tất cả các khối đồng thời mỗi dòng tiêu thụ trên mỗi khối chỉ vài mA Vì vậy chọn adapter 5V1A để cấp nguồn cho toàn mạch hoạt động.
3.4.6 Sơ đồ nguyên lý toàn mạch
Hình 3-19 Sơ đồ nguyên lý toàn mạch trên phần mềm Proteus
THI CÔNG HỆ THỐNG VÀ ĐÁNH GIÁ KẾT QUẢ
VẼ MẠCH ĐIỆN TRÊN PHẦM MỀM MÔ PHỎNG PROTUES
Hình 4-24 Vẽ mạch PCB trên phần mềm Proteus