You are on page 1of 31

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI THÀNH

PHỐ HỒ CHÍ MINH


KHOA ĐIỆN - ĐIỆN TỬ - VIỄN THÔNG

BÁO CÁO MÔN HỌC


ĐỒ ÁN ĐIỆN TỬ - VIỄN THÔNG 1

ĐỀ TÀI:

HỆ THỐNG PHÂN LOẠI VÀ ĐẾM SẢN


PHẨM THEO CHIỀU CAO

Sinh viên thực hiện: Huỳnh Quang Trường


MSSV: 17H1040040
Giáo viên hướng dẫn: ThS.Nguyễn Quang Vinh

TP.HCM, 11/2020
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

........................................................................................................................................

Chữ ký của giáo viên


MỤC LỤC
CHƯƠNG 1: LÝ THUYẾT 1
1. Vi điều khiển PIC16F887 1
1.1. Cấu hình vi điều khiển PIC16F887 1
1.2. Khảo sát sơ đồ chân vi điều khiển PIC16F887 3
2. LCD HD44780 6
2.1. Chức năng các chân 6
2.2. Các lệnh điều khiển LCD 7
3. Động cơ SERVO SG90 9
4. Cảm biến vật cản hồng ngoại IR Infrared Obstacle Avoidance 11
5. Ma trận phím 12
CHƯƠNG 2: THIẾT KẾ VÀ THI CÔNG 13
1. Tìm hiểu đề tài 13
1.1. Nhiệm vụ đặt ra 13
1.2. Hướng giải quyết 14
2. Nguyên lý hoạt động 15
2.1. Sơ đồ nguyên lý 15
2.2. Lưu đồ thuật toán 15
2.3. Nguyên lý hoạt động 15

CHƯƠNG 3: ĐÁNH GIÁ 19


1. Kết quả thực hiện 19
2. Hạn chế 19
3. Hướng khắc phục và phát triển 20
MỤC LỤC HÌNH VẼ
Hình 1.1. Hình ảnh thực tế vi điều khiển PIC16F887 1
Hình 1.2. Cấu hình của vi điều khiển PIC16F887 3
Hình 1.3. Sơ đồ chân của PIC16D887 4
Hình 1.4. LCD 16x2 HD44780 6
Hình 1.5. Chức năng các chân của LCD 7
Hình 1.6. Các lệnh điều khiển LCD 8
Hình 1.7. Động cơ SERVO SG90 10
Hình 1.8. Cảm biến vật cản hồng ngoại 11
Hình 1.9. Ma trận phím 3x3 12
Hình 2.1. Sơ đồ khối 13
Hình 2.2. Băng tải mini 14
Hình 2.3. Kit tích hợp PICKIT V4 14
Hình 2.4. Sơ đồ nguyên lý 15
Hình 2.5. Lưu đồ thuật toán 16
Hình 2.6. Mô phỏng cách bố trí trên hệ thống 17
Hình 3.1. Hình ảnh mô hình hoàn tất 18
LỜI NÓI ĐẦU
Với tốc độ phát triển nhanh chóng của các ngành công nghiệp hiện đại như công
nghệ thông tin, công nghệ truyền thông, cơ khí, động lực trong thời gian qua không thể
tách rời với ngành điện tử viễn thông. Ngành điện tử viễn thông đóng vai trò rất quan
trọng, nó đã xâm nhập vào cuộc sống con người khá sớm từ những thiết bị đơn giản như
đèn chiếu sáng, radio,…, đến những máy móc phức tạp và ứng dụng công nghệ cao như
hệ thống camera, robot…tất cả điều đươc ứng dụng rộng rãi và góp phần hiệu quả vào
công việc giải phóng sức lao động của con người đưa con người hướng tới một thế giới
công nghệ mới ngày càng hiên đại và tinh vi hơn.

Trong công nghiệp, các hệ thống tự động nhằm giảm thiểu sức lao động, tăng hiệu
suất và độ chính xác đang được áp dụng ngày càng nhiều. Chúng đang dần trở nên phổ
biến không chỉ trong các xí nghiệp công ty lớn mà kể cả các vùng nông thôn.

Vì vậy, với những kiến thức tự tìm tòi cũng như đã học được của ngành điện tử
viễn thông em xin chọn đề tài “Hệ thống phân loại và đếm sản phẩm theo chiều cao”.
Do kiến thức còn hạn hẹp nên quá trình thực hiện đề tài không thể tránh khỏi những thiếu
sót. Kính mong sự chỉ dẫn và góp ý của quý thầy cô và các bạn .
Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh

CHƯƠNG 1: LÝ THUYẾT
1. Vi điều khiển PIC16F887:
PIC16F887 là vi điều khiển thuộc họ PIC16F được sản xuất bởi hãn MICROCHIP với
tập lệnh gồm 35 lệnh có độ dài 14bit. Đây là chip được sử dụng khá phổ biến hiện nay tại
Việt Nam cũng như trên thế giới với đầy đủ các chức năng của một vi điều khiển nói
chung và phù hợp với các ứng dụng cơ bản. Trong đồ án này, PIC16F887 sẽ được dùng
để xử lý và điều khiển cho toàn bộ hệ thống.

Hình 1.1. Hình ảnh thực tế vi điều khiển PIC16F887

1.1. Cấu hình vi điều khiền PIC16F887:


Đặc điểm thực thi tốc độ cao CPU RISC:
 Có 35 lệnh đơn.
 Thời gian thực hiện tất cả các lệnh là 1 chu kì máy, ngoại trừ lệnh rẽ nhánh là 2.
 Tốc độ hoạt động: 20Mhz ngõ vào xung với chu kì lệnh 200ns
 Có nhiều nguồn ngắt.

 Có 3 kiểu định địa chỉ trực tiếp, gián tiếp và tức thời.

Cấu trúc đặc biệt của vi điều khiển:

SVTH: Huỳnh Quang Trường Trang 1


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
 Bộ dao động nội chính xác:
 Có chế độ ngủ để tiết kiệm công suất.
 Dãy điện áp hoạt động rộng từ 2V đến 5,5V.
 Tầm nhiệt độ làm việc theo chuẩn công nghiệp.
 Có mạch reset khi có điện (Power On Reset – POR).
 Có bộ định thời chờ ổn định điện áp khi mới có điện (Power up Timer – PWRT)
và bộ định thời chờ dao động hoạt động ổn định khi mới cấp điện (Oscillator Startup
Timer – OST).
 Có bộ định thời giám sát (Watchdog Timer – WDT) dùng dao động trong chip cho
phép bằng phần mềm (có thể định thời lên đến 268 giây).
 Đa hợp ngõ vào reset với ngõ vào có điện trở kéo lên.
 Có bảo vệ code đã lập trình.
 Bộ nhớ Flash cho phép xóa và lập trình 100,000 lần.
 Bộ nhớ Eeprom cho phép xóa và lập trình 1,000,000 lần và có thể tồn tại trên 40
năm.
 Cho phép đọc/ghi bộ nhớ chương trình khi mạch hoạt động.
 Có tích hợp mạch gỡ rối.
Cấu trúc nguồn công suất thấp:
 Chế độ chờ: dòng tiêu tán khoảng 50nA, sử dụng nguồn 2V.
 Dòng hoạt động:
 11µA ở tần số hoạt động 32kHz, sử dụng nguồn 2V.
 220µA ở tần số hoạt động 4MHz, sử dụng nguồn 2V.
 Bộ định thời Watchdog Timer khi hoạt động tiêu thụ 1,4µA, điện áp 2V.
Cấu trúc ngoại vi:
 Có 35 chân I/O cho phép lựa chọn hướng độc lập.
 Có module so sánh tương tự.
 Có bộ chuyển đổi tương tự sang số.
 Có 3 Timer: Timer 0, Timer 1, Timer 2.

SVTH: Huỳnh Quang Trường Trang 2


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
 Có module capture, compare và điều chế xung PWM+ nâng cao.
 Có module capture, compare và điều chế xung PWM.
 Có thể lập trình trên bo ISP thông qua 2 chân.
 Có module truyền dữ liệu nối tiếp đồng bộ MSSP hổ trợ chuẩn truyền 3 dây SPI,
chuẩn I2C ở 2 chế độ chủ và tớ.

Hình 1.2. Cấu hình của vi điều khiển PIC16F887.


1.2. Khảo sát sơ đồ chân vi điều khiển PIC16F887:

Sơ đồ chân của vi điều khiển PIC16F887 loại 40 chân được trình bày ở hình 1.4.

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 của từng chân được khảo sát theo port.

Chức năng các chân phân chia theo nhóm chức năng:

 Chức năng là port I/O:

 PortA gồm các tín hiệu từ RA0 đến RA7.


 PortB gồm các tín hiệu từ RB0 đến RB7.

SVTH: Huỳnh Quang Trường Trang 3


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
 PortC gồm các tín hiệu từ RC0 đến RC7.
 PortD gồm các tín hiệu từ RD0 đến RD7.
 PortE gồm các tín hiệu từ RE0 đến RE3.
 Chức năng tương tự là các ngõ vào bộ chuyển đổi ADC: có 14 kênh
 14 kênh ngõ vào tương tự từ AN0 đến AN13.
 Hai ngõ vào nhận điện áp tham chiếu bên ngoài là Vref+ và Vref-.

Hình 1.3. Sơ đồ chân của PIC16F887.

 Chức năng tương tự là các ngõ vào bộ so sánh C1 và C2: có 2 bộ so sánh


 Có 4 ngõ vào nhận điện áp ngõ vào âm của 2 bộ so sánh là: C12IN0-, C12IN1-,
C12IN2-, C12IN3-.
 Có 2 ngõ vào nhận điện áp tương tự dương cho 2 bộ so sánh là: C1IN+ và
C2IN+.
 Có 2 ngõ ra của 2 bộ so sánh là: C1OUT và C2OUT.
 Có 1 ngõ vào nhận điện áp tham chiếu chuẩn cấp cho 2 bộ so sánh là: CVREF.
 Chức năng dao động cấp xung cho CPU hoạt động:

SVTH: Huỳnh Quang Trường Trang 4


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
 Có 2 ngõ vào nối với tụ thạch anh để tạo dao động là OSC1 và OSC2.
 Có 1 ngõ vào nhận tín hiệu dao động từ nguồn khác là CLKIN nếu không dùng
tụ thạch anh, có 1 ngõ ra cấp xung clock cho thiết bị khác là CLKOUT.
 Chức năng nhận xung ngoại của T0 và T1:
 Có 1 ngõ vào nhận xung ngoại cho timer/counter T0 có tên là T0CKI.
 Có 1 ngõ vào nhận xung ngoại cho timer/counter T1 có tên là T1CKI.
 Có 2 ngõ vào tạo dao động riêng cho Timer1 hoạt động độc lập có tên là T1OSO
và T1OSI.
 Chức năng truyền dữ liệu SPI:
 Có 1 ngõ vào nhận dữ liệu là SDI.
 Có 1 ngõ ra phát dữ liệu là SDO.
 Có 1 ngõ ra phát xung clock là SCK.
 Có 1 ngõ vào chọn chip khi hoạt động ở chế độ tớ là SS .
 Chức năng truyền dữ liệu I2C:
 Có 1 ngõ truyền/nhận dữ liệu là SDA.
 Có 1 ngõ ra phát xung clock là SCL.
 Chức năng truyền dữ liệu đồng bộ ESUART:
 Có 1 ngõ truyền/nhận dữ liệu là DT.
 Có 1 ngõ ra phát xung clock là CK.
 Chức năng truyền dữ liệu không đồng bộ ESUART:
 Có 1 ngõ nhận dữ liệu là RX.
 Có 1 ngõ phát dữ liệu là TX.
 Chức năng ngắt:
 Có 1 ngõ nhận tín hiệu ngắt cứng là INT.
 Chức năng CCP (capture, compare, pulse width modulation):
 Có 2 tín hiệu cho khối CCP là CCP1 và CCP2.
 Có 4 tín hiệu cho khối PWM là P1A, P1B, P1C, P1D.
 Chức năng nạp chương trình vào bộ nhớ flash:
 Có 1 tín hiệu để truyền dữ liệu là ICSPDAT.

SVTH: Huỳnh Quang Trường Trang 5


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
 Có 1 tín hiệu để nhận xung clock là ICSPCLK.
 Có 1 tín hiệu để điều khiển nạp là PGM.
 Có 1 tín hiệu để nhận điện áp lập trình là VPP.
 Có 1 ngõ vào reset có tên là MCLR (master clear).
 Có 4 chân cấp nguồn: VDD cấp nguồn dương, VSS nối với 0V.
2. LCD HD44780:
Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều
các ứng dụng của VĐK. LCD có rất nhiều ưu điểm so với các dạng hiển thị khác: Nó có
khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào
mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ thống và
giá thành rẽ. Trong đồ án này, ta sẽ dùng LCD 16x2 HD44780 để hiển thị thông tin.

Hình 1.4. LCD 16x2 HD44780

2.1. Chức năng các chân:

SVTH: Huỳnh Quang Trường Trang 6


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh

Hình 1.5. Chức năng các chân của LCD

* Ghi chú : Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thông qua các
chân DBx. Còn khi ở chế độ “ghi”, nghĩa là MPU xuất thông tin điều khiển cho LCD
thông qua các chân DBx.

2.2. Các lệnh điều khiển LCD:

SVTH: Huỳnh Quang Trường Trang 7


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
Để điều khiển LCD thì có các IC chuyên dùng được tích hợp bên dưới LCD có mã số
447801 đến các IC 447809. Trong IC này có bộ nhớ RAM dùng để lưu trữ dữ liệu cần
hiển thị và thực hiện việc điều khiển LCD hiển thị.

Hình 1.6. Các lệnh điều khiển LCD


Lệnh xoá màn hình “Clear Display”: khi thực hiện lệnh này thì LCD sẽ bị xoá và bộ
đếm địa chỉ được xoá về 0.
Lệnh di chuyển con trỏ về đầu màn hình “Cursor Home”: khi thực hiện lệnh này thì
bộ đếm địa chỉ được xoá về 0, phần hiển thị trở về vị trí gốc đã bị dịch trước đó. Nội dung
bộ nhớ RAM hiển thị DDRAM không bị thay đổi.

SVTH: Huỳnh Quang Trường Trang 8


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
Lệnh thiết lập lối vào “Entry mode set”: lệnh này dùng để thiết lập lối vào cho các kí
tự hiển thị, bit ID = 1 thì con trỏ tự động tăng lên 1 mỗi khi có 1 byte dữ liệu ghi vào bộ
hiển thị, khi ID = 0 thì con trỏ sẽ không tăng: dữ liệu mới sẽ ghi đè lên dữ liệu cũ. Bit S =
1 thì cho phép dịch chuyển dữ liệu mỗi khi nhận 1 byte hiển thị.
Lệnh điều khiển con trỏ hiển thị “Display Control”: lệnh này dùng để điều khiển con
trỏ (cho hiển thị thì bit D = 1, tắt hiển thị thì bit D = 0), tắt mở con trỏ (mở con trỏ thì bit
C = 1, tắt con trỏ thì bit C = 0), và nhấp nháy con trỏ (cho nhấp nháy thì bit B = 1, tắt thì
bit B = 0).
Lệnh di chuyển con trỏ “Cursor /Display Shift”: lệnh này dùng để điều khiển di
chuyển con trỏ hiển thị dịch chuyển (SC = 1 cho phép dịch chuyển, SC = 0 thì không cho
phép), hướng dịch chuyển (RL = 1 thì dịch phải, RL = 0 thì dịch trái). Nội dung bộ nhớ
DDRAM vẫn không đổi.
Lệnh thiết lập địa chỉ cho bộ nhớ RAM phát kí tự “Set CGRAM Addr”: lệnh này
dùng để thiết lập địa chỉ cho bộ nhớ RAM phát kí tự.
Lệnh thiết lập địa chỉ cho bộ nhớ RAM hiển thị “Set DDRAM Addr”: lệnh này dùng
để thiết lập địa chỉ cho bộ nhớ RAM lưu trữ các dữ liệu hiển thị.
Hai lệnh cuối cùng là lệnh đọc và lệnh ghi dữ liệu LCD.
3. Động cơ SERVO SG90:
Động cơ Servo SG90 (Góc Quay 180) là Servo phổ biến dùng trong các mô hình điều
khiển nhỏ và đơn giản như cánh tay robot. Động cơ có tốc độ phản ứng nhanh, được tích
hợp sẵn Driver điều khiển động cơ, dễ dàng điều khiển góc quay bằng phương pháp điều
độ rộng xung PWM.

SVTH: Huỳnh Quang Trường Trang 9


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh

Hình 1.7. Động cơ SERVO SG90

 Điện áp hoạt động: 4.8V ~ 6V DC.


 Tốc độ quay 0.12 giây/60° (4.8V), 0.1 giây/60° (6V).
 Mô men xoắc: 1.8kg/cm (4.8V), 2.5kg/cm (6V).
 Góc quay: 180°.
 Nhiệt độ hoạt động: 0°C ~ 55°C.
 Dây cam: Xung.
 Dây đỏ: Vcc (4.8V ~ 6V).
 Dây đen: GND (0V).
4. Cảm biến vật cản hồng ngoại IR Infrared Obstacle Avoidance:

SVTH: Huỳnh Quang Trường Trang 10


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
Cảm biến vật cản hồng ngoại IR Infrared Obstacle Avoidance được sử dụng để nhận
biết vật cản bằng ánh sáng hồng ngoại, cảm biến có cách sử dụng đơn giản với biến trở
chỉnh khoảng cách nhận biết vật cản, ngõ ra dạng Digital dễ dàng giao tiếp và lập trình
với Vi điều khiển, thích hợp để làm các ứng dụng Robot tránh vật cản, báo trộm, mô hình
cửa tự động. Trong đồ án này, ta sẽ dùng nó để nhận biết khi có sản phẩm được truyền
đến.

Hình 1.8. Cảm biến vật cản hồng ngoại

 Điện áp sử dụng: 3.3 ~ 5VDC.


 Nhận biết vật cản bằng ánh sáng hồng ngoại.
 Ngõ ra: Digital TTL. Khi phát hiện vật cản OUT ở mức thấp và ngược lại.
 Tích hợp biến trở chỉnh khoảng cách nhận biết vật cản.
5. Ma trận phím:

SVTH: Huỳnh Quang Trường Trang 11


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
Ma trận phím là tổ hợp các nút nhấn đơn, được kết nỗi với nhau theo các cột và các
hàng. Trong đồ án này, ta sẽ sử dụng ma trận phím để nhập dữ liệu điều khiển.

Hình 1.9. Ma trận phím 3x3

CHƯƠNG 2: THIẾT KẾ VÀ THI CÔNG

SVTH: Huỳnh Quang Trường Trang 12


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
1. Tìm hiểu về đề tài:
1.1. Nhiệm vụ đặt ra:
Hệ thống có hai chế độ hoạt động và được lựa chọn bằng nút nhấn:
 Chế độ tự động (Auto Mode):
Có 3 loại sản phẩm RẤT CAO, CAO và THẤP cần được phân loại. Khi cho các
sản phẩm lên băng chuyền thì hệ thống tự động phát hiện và phân loại sản phẩm vào đúng
ô quy định bằng cần gạt sản phẩm, đồng thời đếm và hiển thị số sản phẩm đã phân loại
được lên màn hình.
 Chế động điều khiển bằng tay (Hand Mode):
Chế độ này cho phép người dùng tự điều khiển cần gạt để phân loại sản phẩm theo
ý muốn.

Khối hiển thị

Khối cảm biến Khối xử lý


trung tâm Khối nút nhấn
vật cản

Khối cần gạt

Hình 2.1. Sơ đồ khối

2.2. Hướng giải quyết:


 Dùng vi điều khiển PIC16F887 cho khối xử lý trung tâm đảm nhiệm vai trò là bộ
não của toàn bộ hệ thống.

SVTH: Huỳnh Quang Trường Trang 13


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
 LCD 16x2 cho khối hiển thị.
 2 động cơ SERVO cho khối cần gạt.
 3 cảm biến vật cản hồng ngoại để nhận biết được 3 sản phẩm RẤT CAO, CAO và
THẤP.
 Ma trận phím 3x3 cho khối nút nhấn.
 Băng tải mini phục vụ việc luân truyền sản phẩm.

Hình 2.2. Băng tải mini.


 Dùng kit tích hợp PICKIT V4 phục vụ cho việc học tập có sẵn từ trước cho đồ án.

Hình 2.3. Kit tích hợp PICKIT V4.


 Dùng ngôn ngữ C để lập trình.
2. Nguyên lý hoạt động:
2.1. Sơ đồ nguyên lý:

SVTH: Huỳnh Quang Trường Trang 14


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh

Hình 2.4. Sơ đồ nguyên lý.

2.2. Lưu đồ thuật toán:

SVTH: Huỳnh Quang Trường Trang 15


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
Bắt đầu

Khởi tạo

Hiển thị Menu lựa


chọn

Nhấn nút AUTO Đ Hiển thị AUTO

S
S

S Cảm biến RẤT Tăng biến đếm


Đ Cảm biến THẤP Đ Hiển thị AUTO
Nhấn nút HAND CAO RẤT CAO

S
Đ

Tăng biến đếm Điều khiển cần


Hiển thị HAND Cảm biến CAO Đ Hiển thị AUTO
CAO gạt CAO

Điều khiển Nhấn nút cần gạt Tăng biến đếm Điều khiển cần
Đ Cảm biến THẤP Đ Hiển thị AUTO
cần gạt CAO CAO THẤP gạt THẤP

S
S

Điều khiển Nhấn nút cần gạt Nhấn nút Reset Reset tất cả biến
Đ Đ
cần gạt THẤP THẤP giá trị đếm đếm

Nhấn nút quay S Nhấn nút quay S


Đ
lại Menu lại Menu

Hình2.5. Lưu đồ thuật toán.

2.3. Nguyên lý hoạt động:


Khi hệ thống được khởi động, màn hình LCD hiển thị Menu tùy chọn 2 chế độ AUTO
và HAND chờ cho người dùng lựa chọn bằng nút nhấn.

SVTH: Huỳnh Quang Trường Trang 16


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh

Hình 2.6. Mô phỏng cách bố trí trên hệ thống.


 Chế độ AUTO:
Đối với trường hợp sản phẩm RẤT CAO được đặt lên băng tải. Cảm biến
SENSOR 1 nhận biết được và báo về vi điều khiển. Vi điều khiển buộc hệ thống chờ cho
sản phẩm RẤT CAO tiếp tục di chuyển trên băng tải (SENSOR 2 bị vô hiệu hóa) cho đến
khi SENSOR 3 nhận biết được và báo về vi điều khiển. Ngay khi đó, vi điều khiển thực
hiện tăng biến đếm sản phẩm RẤT CAO lên 1 và hiển thị lên LCD. Ta nhận được sản
phẩm RẤT CAO ở cuối băng tải.
Đối với trường hợp sản phẩm CAO hoặc THẤP được đặt lên băng tải. Các cảm
biến tương ứng của các sản phẩm (SENSOR 2 cho sản phẩm CAO, SENSOR 3 cho sản
phẩm THẤP) nhận biết được và báo về vi điều khiển. Vi điều khiển sau khi nhận được tín
hiệu từ SENSOR thì tăng biến đếm tương ứng lên 1 và hiển thị lên LCD, cùng lúc đó ra
lệnh cho SERVO gạt sản phẩm vào ô nhận sản phẩm. Ta nhận được sản phẩm CAO hoặc
THẤP ở các ô tương ứng.
 Chế độ HAND:
Người dùng điều khiển tay gạt sản phẩm (SERVO) bằng nút nhấn tương ứng. Khi
nhấn nút, tín hiệu từ nút nhấn báo về vi điều khiển. Vi điều khiển xác định tín hiệu từ nút
nhấn và ra lệnh cho SERVO tương ứng thực hiện gạt sản phẩm. Ta thu được sản phẩm
vào các ô tùy theo ý muốn.

SVTH: Huỳnh Quang Trường Trang 17


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh

SVTH: Huỳnh Quang Trường Trang 18


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh

CHƯƠNG 3: ĐÁNH GIÁ VÀ KẾT LUẬN


1. Kết quả thực hiện:
 Hệ thống tương đối ổn định, đáp ứng được yêu cầu của đề tài.
 Phân loại được sản phẩm vào đúng ô tương ứng.
 Đếm và hiển thị kết quả chính xác.
 Phần mềm chương trình tương đối rõ ràng, dễ hiểu.

Hình 3.1. Hình ảnh mô hình hoàn tất


2. Hạn chế:
Khi dùng Relay để điều khiển đóng ngắt nguồn của băng tải thì xảy ra rò điện ảnh
hưởng đến vi điều khiển. Điều này khiến cho hệ thống hoạt động sai và không ổn định. Vì
vậy chưa thể dùng nút nhấn trong ma trận phím để điều khiển băng tải.
Chương trình còn dài, chưa được tối ưu.
3. Hướng khắc phục và phát triển:

SVTH: Huỳnh Quang Trường Trang 19


Đồ Án Điện Tử - Viễn Thông 1 GVHD: Ths. Nguyễn Quang Vinh
Dùng công tắc để nối liền giữa nguồn cấp và băng tải. Từ đó có thể bật tắt băng tải tùy
ý mà không ảnh hưởng đến vi điều khiển.
Tìm hiểu thêm về các Board tích hợp WIFI/BLUETOOTH như ESP32 hoặc ESP8266.
Kết hợp chúng cùng với PIC16F887 của hệ thống, từ đó ta có thể điều khiển hệ thống trực
tiếp bằng ứng dụng trên điện thoại.

SVTH: Huỳnh Quang Trường Trang 20


PHỤC LỤC
Phần mềm được viết bằng ngôn ngữ C:
#include<16f887.h>
#fuses HS
#use delay(clock=20M)
#include<tv_lcd_4bit.c>
#include<tv_keyphim.c>

#define SS_RATCAO pin_c5


#define SS_CAO pin_c6
#define SS_THAP pin_c7

#define SERVO1 pin_c0


#define SERVO2 pin_c1

unsigned char RATCAO,CAO, THAP,i,mp,F;


int1 INV1, INV2, MOTOR;

void HienThi(){
lcd_command(0x84);
lcd_data("RAT CAO:");
lcd_data(RATCAO/10+0x30);
lcd_data(RATCAO%10+0x30);

lcd_command(0xC0);
lcd_data("CAO=");
lcd_data(CAO/10+0x30);
lcd_data(CAO%10+0x30);

lcd_command(0xC8);
lcd_data("THAP=");
lcd_data(THAP/10+0x30);
lcd_data(THAP%10+0x30);
}
void Dem_Cao(){
if(input(SS_CAO)==0){
CAO++;
for(i=0;i<15;i++){
output_high(SERVO1);
delay_us(1500);
output_low(SERVO1);
delay_us(18500);
}

for(i=0;i<15;i++){
output_high(SERVO1);
delay_us(500);
output_low(SERVO1);
delay_us(19500);
}
HienThi();
}
}
void Dem_Thap(){
if(input(SS_THAP)==0){
THAP++;
for(i=0;i<15;i++){
output_high(SERVO2);
delay_us(1500);
output_low(SERVO2);
delay_us(18500);
}

for(i=0;i<15;i++){
output_high(SERVO2);
delay_us(500);
output_low(SERVO2);
delay_us(19500);
}
HienThi();
}

}
void main(){
set_tris_e(0x00);
set_tris_d(0x0C);
set_tris_c(0xF0);
set_tris_b(0xC6);
set_tris_a(0x00);
output_low(pin_b0);
lcd_init();
RATCAO=0;
CAO=0;
THAP=0;
INV1=1;
INV2=1;
MOTOR=1;
F=1;
while(true){
MENU:
while(true){
if(F==1){
lcd_command(0x01);
lcd_command(0x84);
lcd_data("WORK MODE");
lcd_command(0xC0);
lcd_data("1.AUTO");
lcd_command(0xCA);
lcd_data("2.HAND");
F=0;
}
mp=KeyPress();
if(mp!=20){
if(mp==3){
F=1;
goto AUTO_MODE;
}
if(mp==5){
F=1;
goto HAND_MODE;
}
}

}
AUTO_MODE:
while(true){
if(F==1){
lcd_command(0x01);
HienThi();
F=0;
}
mp=KeyPress();

if(input(SS_RATCAO)==0){
RATCAO++;
while(input(SS_THAP)==1);
HienThi();
Delay_ms(200);
}
Dem_Cao();
Dem_Thap();

if(mp!=20){
if(mp==4){
RATCAO=CAO=THAP=0;
F=1;
}
if(mp==1){
F=1;
goto MENU;
}
}
}
HAND_MODE:
while(true){
if(F==1){
lcd_command(0x01);
lcd_command(0x84);
lcd_data("HAND MODE");
F=0;
}
mp=KeyPress();

if(mp!=20){
if(mp==1){
F=1;
goto MENU;
}
if(mp==4){
if(INV1==1){
for(i=0;i<15;i++){
output_high(SERVO1);
delay_us(1500);
output_low(SERVO1);
delay_us(18500);
}
}
if(INV1==0){
for(i=0;i<15;i++){
output_high(SERVO1);
delay_us(500);
output_low(SERVO1);
delay_us(19500);
}
}
INV1=~INV1;
}
if(mp==6){
if(INV2==1){
for(i=0;i<15;i++){
output_high(SERVO2);
delay_us(1500);
output_low(SERVO2);
delay_us(18500);
}
}
if(INV2==0){
for(i=0;i<15;i++){
output_high(SERVO2);
delay_us(500);
output_low(SERVO2);
delay_us(19500);
}
}
INV2=~INV2;
}

}
}

}
}
TÀI LIỆU THAM KHẢO
1. Giáo trình vi xử lý vi điều khiển PIC16f887 - Nguyễn Đình Phú.
2. Datasheet LCD HD44780.
3. Các Website:
www.alldatasheets.com
www.youtube.com
www.google.com

You might also like