Nhiệm vụ của đề tài: Thiết kế, thi công mô hình băng tải đếm số lượng sản phẩm qua cảm biến, hiển thịlên màn hình LCD, sử dụng động cơ Servo nhằm phân loại sản phẩm.. Mô hình đáp ứngyêu
TỔNG QUAN VỀ ĐỀ TÀI
Phân tích và đánh giá
o Kiểm tra hoạt động của mô hình.
1.4 Phân tích và đánh giá
- Kết nối, lập trình và chạy thử mô hình, từ đó tiến hành các điều chỉnh để đảm bảo hệ thống hoạt động chính xác.
CƠ SỞ LÝ THUYẾT
ARDUINO UNO R3
2.1.1 Tính năng và thông số kĩ thuật
Chip điều khiển chính: ATmega328P
Chip nạp và giao tiếp UART: ATmega16U2
Nguồn nuôi mạch: 5VDC từ cổng USB hoặc nguồn ngoài cắm từ giắc tròn DC
Số chân Digital I/O: 14 (trong đó 6 chân có khả năng xuất xung PWM).
Dòng điện DC Current trên mỗi chân I/O: 20 mA
Dòng điện DC Current chân 3.3V: 50 mA
Flash Memory: 32 KB (ATmega328P), 0.5 KB dùng cho bootloader.
Arduino là bộ vi điều khiển trung tâm trong hệ thống, chịu trách nhiệm điều khiển các linh kiện như động cơ, cảm biến và màn hình LCD I2C, dựa trên chương trình đã được nạp vào.
2.1.2 Sơ đồ chân và chức năng các chân
Hình 2.2 Sơ đồ chân của Arduino Uno R3
Digital I/O 0-13: Các chân số để nhận hoặc gửi tín hiệu số Một số chân hỗ trợ
Analog In A0-A5: Đọc tín hiệu tương tự từ 0-5V.
Power GND: Chân nối đất, 5V/3.3V: Chân cung cấp điện áp
ICSP Header Cung cấp giao diện SPI để giao tiếp với các module khác.
UART Chân 0 (RX) và 1 (TX): Giao tiếp UART (Serial)
Bảng 2.1 Chức năng chân của Arduino
2.1.3 Cấu tạo và xử lý tín hiệu
Cấu tạo: Arduino UNO R3 được xây dựng trên vi điều khiển ATmega328P, bao gồm các khối chính:
Khối xử lý trung tâm (CPU): ATmega328P với xung nhịp 16 MHz.
Khối nguồn: Hỗ trợ nguồn từ cổng USB hoặc chân VIN (7-12V), với mạch ổn áp để cấp 5V và 3.3V.
Giao tiếp ngoại vi: Bao gồm các chân Digital I/O, Analog In, và giao tiếp Serial.
ICSP: Giao diện để nạp chương trình.
Arduino nhận tín hiệu từ các cảm biến qua các chân Digital hoặc Analog.
Tín hiệu được xử lý qua lệnh lập trình, cho phép Arduino gửi tín hiệu điều khiển đến các thành phần như động cơ, màn hình LCD và servo.
2.1.4 Các ứng dụng thực tế
Trong các hệ thống tự động hóa, Arduino được dùng để điều khiển và xử lý tín hiệu từ cảm biến, động cơ, và thiết bị ngoại vi.
Phát triển các dự án như băng tải phân loại sản phẩm, nhà thông minh, robot tự hành, và hệ thống giám sát môi trường.
Giáo dục: Dùng trong việc học lập trình và phát triển kỹ năng IoT.
ĐỘNG CƠ DC VÀ MACH ĐIỀU KHIỂN L298N
2.2.1 Tính năng và thông số kĩ thuật
Hình 2.4 Mạch điều khiển dc L298N
Thông số kỹ thuật: a) Mạch điều khiển L298N
Điện áp hoạt động: 5~30VDC
Công suất tối đa: 25W 1 cầu (lưu ý công suất = dòng điện x điện áp nên áp cấp vào càng cao, dòng càng nhỏ, công suất có định 25W).
Dòng tối đa cho mỗi cầu H là: 2A
Mức điện áp logic: LOW -0.3V~1.5V, HIGH: 2.3V~Vss
Kích thước: 43x43x27mm b) Động cơ DC
Điện áp hoạt động: 5-12VDC
Chức năng: Động cơ DC vận hành băng tải, trong khi mạch L298N giúp điều khiển tốc độ và hướng quay của động cơ.
2.2.2 Sơ đồ chân và chức năng các chân Động cơ DC
Vcc (+) Kết nối với cực dương của nguồn hoặc mạch điều khiển Điều khiển chiều quay của động cơ (theo chiều thuận).
GND (-) Kết nối với cực âm của nguồn hoặc mạch điều khiển.
Bảng 2.2 Chức năng chân động cơ
Hình 2.5 Sơ đồ chân mạch L298N
GND Đấu dây nối đất
ENA Kích hoạt tín hiệu PWM cho động cơ A
ENB Kích hoạt tín hiệu PWM cho động cơ B
IN1 và IN2 là các đấu dây đầu vào để điều khiển hướng quay của động cơ A, trong khi IN3 và IN4 được sử dụng cho việc điều khiển hướng quay của động cơ B OUT1 và OUT2 là các đấu dây đầu ra dành cho động cơ A.
OUT3 & OUT4 Các đấu dây đầu ra cho động cơ B
Bảng 2.3 Chức năng chân mạch L298N
2.2.3 Cấu tạo và xử lý tín hiệu
Stator: Phần nam châm cố định tạo từ trường.
Rotor: Cuộn dây quay trong từ trường, tạo chuyển động.
Chổi than và cổ góp: Truyền dòng điện từ nguồn cấp vào rotor.
Arduino điều khiển L298N để cấp nguồn và điều chỉnh tốc độ của động cơ.
Tín hiệu PWM từ Arduino qua L298N kiểm soát tốc độ và hướng quay của động cơ.
IC điều khiển L298: Hai mạch cầu H để điều khiển hai động cơ DC độc lập.
Điện trở và diode bảo vệ: Chống nhiễu và bảo vệ IC.
Chân ENA/ENB: Điều chỉnh tốc độ động cơ qua tín hiệu PWM.
Chân IN1/IN2, OUT1/OUT2: Điều khiển chiều quay và đầu ra cho động cơ.
Nhận tín hiệu điều khiển từ Arduino qua IN1/IN2.
Tạo xung điện để điều khiển tốc độ và hướng quay của động cơ DC.
2.2.4 Các ứng dụng của thực tế
Băng tải công nghiệp được sử dụng để vận chuyển hàng hóa trong dây chuyền sản xuất, trong khi robot di động tạo chuyển động cho các robot và xe tự hành Hệ thống quạt và bơm nước đóng vai trò quan trọng trong các hệ thống điều hòa không khí và tưới tiêu tự động Ngoài ra, thiết bị gia dụng như máy hút bụi, máy xay sinh tố và quạt cũng là những ứng dụng phổ biến trong đời sống hàng ngày.
Ứng dụng của các bộ điều khiển động cơ rất đa dạng, bao gồm điều khiển động cơ DC trong các hệ thống tự động hóa như băng tải, robot và xe điều khiển từ xa, cũng như điều khiển động cơ bước trong máy CNC, máy in 3D hoặc hệ thống điều hướng Ngoài ra, chúng còn được sử dụng rộng rãi trong các dự án DIY để điều chỉnh tốc độ hoặc hướng quay của động cơ, mang lại sự linh hoạt và tiện lợi cho người dùng.
CẢM BIẾN HỒNG NGOẠI
2.3.1 Tính năng và thông số kĩ thuật
Hình 2.6 Cảm biến hồng ngoại E3F-DS30CP1
Số dây tín hiệu: 3 dây (2 dây cấp nguồn và 1 dây tín hiệu).
Cấu trúc cực thu hở của Transistor PNP - Open Collector cho phép tín hiệu ngõ ra mức cao (HIGH) được tạo ra ngay khi cảm biến phát hiện vật cản.
Nguồn điện cung cấp: 6 ~ 36VDC.
Khoảng điều chỉnh phát hiện vật cản của cảm biến: 5 ~ 30cm (điều chỉnh bằng biến trở trên cảm biến).
Góc khuếch tán (góc chiếu): 3 ~ 5 độ.
Dòng kích ngõ ra: < 300mA.
Có LED hiển thị ngõ ra: Màu đỏ.
Chất liệu sản phẩm: Vỏ ngoài nhựa ABS, phía trong đổ keo chống nước, chống va đập.
Chức năng: Cảm biến hồng ngoại phát hiện sự hiện diện của sản phẩm khi chúng đi qua, từ đó gửi tín hiệu để Arduino tăng biến đếm.
2.3.2 Sơ đồ chân và chức năng các chân
VCC Đấu vào nguồn điện dương (6V ~ 36V DC).
GND Đấu vào cực âm của nguồn điện và GND của hệ thống.
SIGNAL Dây xuất tín hiệu Khi phát hiện vật thể, tín hiệu mức cao
Hình 2.7 Sơ đồ chân cảm biến hồng ngoại
Bảng 2.4 Chức năng chân cảm biến hồng ngoại
2.3.3 Cấu tạo và xử lý tín hiệu
Nguồn phát ánh sáng hồng ngoại (IR LED): Phát ra tia hồng ngoại.
Bộ thu hồng ngoại (IR Receiver): Nhận tín hiệu phản xạ từ vật thể.
Mạch khuếch đại và xử lý tín hiệu: Khuếch đại và chuyển đổi tín hiệu nhận được thành tín hiệu điện áp.
Ngõ ra PNP: Tín hiệu dạng số, bật (HIGH) khi phát hiện vật thể.
Khi vật thể đi qua, tia hồng ngoại phản xạ và được bộ thu nhận.
Mạch xử lý kích hoạt ngõ ra (chân Black), tín hiệu HIGH sẽ được gửi đến Arduino để xử lý.
2.3.4 Các ứng dụng thực tế Ứng dụng:
Hệ thống băng tải công nghiệp: Phát hiện sản phẩm trên băng tải để đếm hoặc kiểm tra.
Hệ thống cửa tự động: Phát hiện người hoặc vật để tự động đóng/mở cửa.
Xe tự hành: Dùng để phát hiện vật cản hoặc định vị đường đi.
Thiết bị đo lường: Kiểm tra sự hiện diện hoặc đo tốc độ di chuyển của vật thể.
ĐỘNG CƠ SERVO MG996R
2.4.1 Tính năng và thông số kĩ thuật
Hình 2.8 Động cơ Servo MG996R
Chủng loại: Analog RC Servo.
Điện áp hoạt động: 4.8~7.2VDC.
9.4 kg-cm (130 oz-in) at 4.8V.
11 kg-cm (152 oz-in) at 6.0V.
Kích thước: 40.7mm x 19.7mm x 42.9mm.
Điều khiển góc quay chính xác: Xoay từ 0° đến 180° dựa trên tín hiệu PWM, đảm bảo vị trí chính xác.
Cung cấp lực xoắn lớn: Mô-men xoắn lên đến 11 kg.cm, phù hợp với các ứng dụng tải nặng.
2.4.2 Sơ đồ chân và chức năng các chân
Hình 2.9 Sơ đồ chân động cơ Servo MG996R
Bảng 2.5 Chức năng chân Servo MG996R
2.4.3 Cấu tạo và xử lý tín hiệu
Cấu tạo của Servo MG996R
Bộ truyền động: Bao gồm bánh răng kim loại (metal gear) giúp tăng độ bền và khả năng chịu tải cao.
Động cơ bên trong: Động cơ DC nhỏ gọn, cung cấp chuyển động quay.
Bộ điều khiển tín hiệu: Mạch nhận tín hiệu PWM để điều chỉnh góc xoay.
Trục servo: Xoay với góc từ 0° đến 180°, thích hợp cho các ứng dụng cần lực xoay mạnh.
Nguyên lý điều khiển: Servo MG996R nhận tín hiệu PWM từ Arduino.
VCC Nối với nguồn dương (4.8V - 7.2V).
GND Nối với nguồn âm (GND).
Signal Nhận tín hiệu điều khiển PWM từ
Arduino hoặc vi điều khiển. o Chu kỳ tín hiệu 20 ms. o Độ rộng xung PWM trong khoảng 1 ms (góc 0°) đến 2 ms (góc 180°).
2.4.4 Các ứng dụng thực tế
Với lực xoắn cao và bánh răng kim loại, MG996r thích hợp cho các ứng dụng tải nặng hoặc yêu cầu độ bền.
Dự án băng tải phân loại:
Dùng để phân loại sản phẩm bằng cách gạt sản phẩm theo hướng định trước.
Xử lý hiệu quả các vật thể có khối lượng lớn hơn so với SG90.
Chuyển động robot là khả năng điều khiển cánh tay robot, bánh xe và các khớp chuyển động, được ứng dụng rộng rãi trong thiết bị công nghiệp như drone, gimbal camera và dây chuyền sản xuất Với tính đa năng và độ bền bỉ cao, các hệ thống này phù hợp cho cả dự án DIY lẫn các ứng dụng công nghiệp yêu cầu khắt khe.
MÀN HÌNH LCD 16X2 VÀ GIAO THỨC I2C
2.5.1 Tính năng và thông số kĩ thuật
Hiển thị thông tin: Có khả năng hiển thị chữ cái, số liệu, và các ký tự đặc biệt trên các dòng và cột.
Độ tương phản điều chỉnh được: Biến trở tích hợp cho phép thay đổi độ sáng và độ tương phản của màn hình.
Kích thước hiển thị đa dạng: Các loại phổ biến như 16x2 (16 ký tự trên 2 dòng) hoặc 20x4 (20 ký tự trên 4 dòng).
Đèn nền (Backlight): Cải thiện khả năng hiển thị trong môi trường ánh sáng yếu.
Kết nối linh hoạt: Có thể sử dụng giao tiếp trực tiếp (16 chân) hoặc thông qua giao thức I2C (4 chân).
Điện áp hoạt động là 5 V.
Chữ đen, nền xanh lá
Khoảng cách giữa hai chân kết nối là 0.1-inch tiện dụng khi kết nối với Breadboard.
Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện.
Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn.
Có thể được điều khiển với 6 dây tín hiệu
Có bộ ký tự được xây dựng hổ trợ tiếng Anh và tiếng Nhật.
Kết nối hai dây: SDA (Dữ liệu) và SCL (Xung nhịp), giảm số lượng dây so với giao tiếp trực tiếp.
Nhiều thiết bị trên một bus: I2C cho phép kết nối nhiều thiết bị (master và slave) trên cùng một đường truyền.
Địa chỉ hóa thiết bị: Mỗi thiết bị trên bus có địa chỉ riêng biệt (7-bit hoặc 10-bit).
Đồng bộ hóa tín hiệu: Master điều khiển tín hiệu đồng bộ qua chân SCL, giúp các thiết bị hoạt động đúng thời gian.
Tốc độ truyền linh hoạt: Hỗ trợ nhiều tốc độ truyền từ 100 kHz đến 1 MHz. Thông số kĩ thuật:
Số dây kết nối: 4 dây bao gồm SDA (dữ liệu) và SCL (xung clock), cùng với
VCC và GND để cấp nguồn.
Tốc độ truyền dữ liệu:
Cấp điện áp: Hỗ trợ 3.3V hoặc 5V tùy thuộc vào thiết bị sử dụng.
Độ dài tối đa của dây:
Từ 1m đến 5m, phụ thuộc vào tốc độ truyền và chất lượng dây kết nối.
Sử dụng địa chỉ 7-bit (cho tối đa 127 thiết bị trên một bus).
Hỗ trợ mở rộng lên 10-bit trong trường hợp cần thiết.
Dạng kết nối: Kết nối theo mô hình Master-Slave, trong đó Master điều khiển các thiết bị Slave trên cùng một đường truyền.
2.5.1.3 Màn hình LCD kết hợp với giao thức I2C
- Trong thực tế, người ta thường dùng màn hình LCD kết hợp với giao thức I2C nhằm như sau:
Giao thức I2C giúp tiết kiệm số lượng chân kết nối, giảm thiểu phức tạp khi sử dụng màn hình LCD với vi điều khiển.
Giúp dễ dàng mở rộng hệ thống với nhiều thiết bị khác mà không tốn thêm tài nguyên phần cứng.
Hình 2.12 Màn hình LCD với I2C
Hiển thị thông tin: Hiển thị ký tự, số liệu, và biểu tượng trong các ứng dụng như băng tải, thiết bị đo lường, hệ thống điều khiển.
Tiết kiệm chân kết nối: Giao thức I2C giảm số lượng chân kết nối từ 16 xuống chỉ còn 4 (VCC, GND, SDA, SCL).
Dễ lập trình: Tích hợp dễ dàng với các vi điều khiển như Arduino thông qua thư viện hỗ trợ.
Tiêu thụ năng lượng thấp: Phù hợp cho các thiết bị di động hoặc hoạt động liên tục.
Khả năng hiển thị đa dạng: Hỗ trợ nhiều kích thước (16x2, 20x4), cho phép hiển thị số lượng lớn thông tin.
Độ tương phản điều chỉnh được: Biến trở trên module cho phép điều chỉnh độ sáng phù hợp với môi trường.
Kích thước gọn nhẹ: Phù hợp với các dự án nhỏ gọn và tiết kiệm không gian. Thông số kỹ thuật:
Dòng tiêu thụ: Khoảng 20mA khi đèn nền bật
Loại hiển thị: LCD có đèn nền (Backlight)
Độ phân giải hiển thị: 16x2 (16 ký tự, 2 dòng)
Giao thức kết nối: I2C (địa chỉ I2C mặc định: 0x27)
Tốc độ giao tiếp: Lên đến 100 kHz
SDA: Chân truyền dữ liệu
Kích thước module: Thay đổi theo loại, ví dụ: 16x2 khoảng 80x36mm
Nhiệt độ hoạt động: -20°C đến 70°C
2.5.2 Sơ đồ chân và chức năng các chân
Vss Chân nối đất GND
Vcc Chân cấp nguồn cho LCD
VEE Điều chỉnh độ tương phản (cần được gắn với biến trở)
RS=0: Đưa LCD vào chế độ ghi lệnh
RS=1: Đưa LCD vào chế độ ghi dữ liệu (dữ liệu xuất lên màn hình)
R/W Chọn chế độ đọc/ghi LCD
RW=0: Vi điều khiển truyền dữ liệu vào LCD RW=1: Vi điều khiển đọc dữ liệu từ LCD
E Chân cho phép kích hoạt LCD nhận lệnh hoặc dữ liệu
E=0: Vô hiệu hóa đọc/ghi E=1: Cho phép LCD đọc/ghi
E chuyển từ mức 1 về 0: bắt đầu đọc/ghi LCD
DB0 Dữ liệu bit thứ 0
DB1 Dữ liệu bit thứ 1
DB2 Dữ liệu bit thứ 2
Hình 2.13 Sơ đồ chân màn hình LCD
DB3 Dữ liệu bit thứ 3
DB4 Dữ liệu bit thứ 4
DB5 Dữ liệu bit thứ 5
DB6 Dữ liệu bit thứ 6
DB7 Dữ liệu bit thứ 7
LED+ Nguồn dương cho LED nền
LED- Nguồn âm cho LED nền
Bảng 2.6 Chức năng các chân màn hình LCD
Hình 2.14 Sơ đồ chân giao thức I2C
SDA Serial Data Line: Dây truyền dữ liệu hai chiều Dùng để gửi và nhận dữ liệu giữa các thiết bị.
SCL Serial Clock Line: Dây đồng hồ tạo xung nhịp, đồng bộ hóa quá trình truyền dữ liệu.
VCC Nối với nguồn dương.
GND Nối với nguồn âm.
Bảng 2.7 Chức năng các chân của I2C
2.5.3 Cấu tạo và xử lý tín hiệu
Cấu tạo của màn hình LCD với module I2C
1 Màn hình LCD cơ bản: o Gồm các hàng và cột để hiển thị ký tự hoặc dữ liệu (ví dụ: 16x2, 20x4). o Các thành phần chính:
Mạch điều khiển HD44780: Điều khiển từng pixel và ký tự.
Đèn nền LED: Tăng độ sáng màn hình.
Biến trở tích hợp: Điều chỉnh độ tương phản.
2 Module I2C tích hợp: o Là một bo mạch nhỏ gắn vào mặt sau của LCD. o Thành phần chính:
PCF8574: IC giao tiếp I2C, chuyển đổi tín hiệu I2C thành tín hiệu điều khiển LCD.
Header 4 chân: Kết nối với Arduino (VCC, GND, SDA, SCL).
Biến trở tích hợp: Điều chỉnh độ tương phản của màn hình LCD. Cách xử lý tín hiệu của màn hình LCD I2C
1 Từ vi điều khiển (Arduino): o Arduino gửi tín hiệu I2C (qua SDA và SCL) đến IC PCF8574. o Tín hiệu I2C gồm:
Địa chỉ thiết bị: Xác định màn hình cần giao tiếp (mặc định thường là 0x27 hoặc 0x3F).
Lệnh hoặc dữ liệu: Quy định hành động như ghi ký tự, xóa màn hình, hoặc định vị con trỏ.
2 IC PCF8574: o Nhận dữ liệu từ vi điều khiển qua giao thức I2C. o Chuyển đổi tín hiệu I2C thành tín hiệu song song (8 bit) để giao tiếp với mạch điều khiển HD44780 trên màn hình LCD.
3 Mạch điều khiển HD44780: o Giải mã tín hiệu điều khiển và dữ liệu. o Hiển thị ký tự hoặc thông tin lên màn hình LCD thông qua các cột và hàng.
4 Màn hình LCD: o Các pixel trên LCD được kích hoạt để hiển thị ký tự hoặc dữ liệu đã xử lý. o Đèn nền LED được điều chỉnh qua module I2C để tăng/giảm độ sáng khi cần.
2.5.4 Các ứng dụng thực tế Ứng dụng của màn hình LCD I2C
1 Dự án DIY và học tập: Hiển thị dữ liệu cảm biến, trạng thái robot, hoặc thông số
2 Tự động hóa công nghiệp: Hiển thị thông tin băng tải, trạng thái máy móc, hoặc cảnh báo lỗi.
3 Sản phẩm thương mại: Dùng trong máy bán hàng tự động, máy in 3D, và thiết bị điều khiển.
4 Đời sống hàng ngày: Dùng trong đồng hồ thông minh, thiết bị đo lường, và hệ thống nhà thông minh.
5 Nghiên cứu và giáo dục: Hiển thị kết quả đo, hỗ trợ giảng dạy điều khiển giao tiếp I2C.
NGUỒN TỔ ONG 12V 10A VÀ LM2596
2.6.1 Tính năng và thông số kĩ thuật
Cung cấp nguồn DC ổn định: Đầu ra 12V với dòng tối đa 10A, phù hợp cho các thiết bị công suất lớn.
Bảo vệ an toàn: Chống quá tải, quá dòng, và quá nhiệt.
Hiệu suất cao: Hiệu suất chuyển đổi đạt 85-90%, giảm tổn hao nhiệt.
Kích thước nhỏ gọn: Dễ lắp đặt trong các hệ thống tự động hóa.
Điện áp đầu vào: 100 - 240V AC.
Điện áp đầu ra: 12V DC.
Hiệu suất: Đạt từ 85% đến 90%.
Tính năng bảo vệ: Có bảo vệ quá tải, ngắn mạch, và quá nhiệt.
Hình 2.16 Mạch hạ áp LM2596
Chuyển đổi điện áp linh hoạt: Hạ điện áp từ 4V-40V xuống mức 1.23V-37V.
Hiệu suất cao: Hiệu suất chuyển đổi tối đa 92%.
Tích hợp bảo vệ: Chống quá dòng và ngắn mạch.
Điều chỉnh đầu ra: Dễ dàng thay đổi điện áp đầu ra thông qua biến trở.
Điện áp đầu vào: 4V - 40V DC.
Điện áp đầu ra: 1.23V - 37V DC.
Dòng điện đầu ra tối đa: 3A.
Tần số chuyển mạch: 150 kHz.
Tính năng bảo vệ: Có bảo vệ quá dòng và quá nhiệt.
2.6.2 Sơ đồ chân và chức năng các chân
Chân Kí hiệu Chức năng
1 L Dây pha của nguồn AC đầu vào.
2 N Dây trung tính của nguồn AC đầu vào.
3 GND Dây nối đất để bảo vệ an toàn.
4 V+ Đầu ra dương (+) của nguồn DC 12V
5 V- Đâu ra âm (-) của nguồn DC 12V
Bảng 2.8 Chức năng các chân của nguồn tổ ong
Chân Kí hiệu Chức năng
1 VIN+ Điện áp đầu vào dương (DC 4V - 40V).
2 VIN- Điện áp đầu vào âm (GND, mass).
3 VOUT+ Điện áp đầu ra dương (DC 1.23V - 37V).
4 VOUT- Điện áp đầu ra âm (GND, mass).
Bảng 2.9 Chức năng các chân mạch hạ áp LM2596
2.6.3 Cấu tạo và xử lý tín hiệu
Biến áp cách ly: Chuyển đổi từ AC sang DC và giảm điện áp đầu vào xuống mức
Mạch chỉnh lưu và lọc: Loại bỏ thành phần AC trong tín hiệu, đảm bảo đầu ra
Mạch điều khiển xung: Điều chỉnh hiệu suất chuyển đổi và bảo vệ thiết bị.
Tản nhiệt: Giảm nhiệt độ khi nguồn hoạt động ở công suất cao.
AC đầu vào (100-240V) được chuyển thành DC qua mạch chỉnh lưu và lọc.
Biến áp và mạch điều khiển xung duy trì đầu ra ổn định ở 12V, bất chấp biến động nguồn đầu vào.
IC LM2596: Điều chỉnh điện áp đầu ra qua kỹ thuật điều chế độ rộng xung
Tụ lọc: Ổn định tín hiệu đầu vào và đầu ra.
Cuộn cảm: Giảm nhiễu và bảo vệ mạch khỏi dao động dòng điện.
Biến trở điều chỉnh: Thay đổi mức điện áp đầu ra mong muốn.
Điện áp DC đầu vào qua cuộn cảm và IC LM2596 để chuyển đổi thành xung PWM.
IC LM2596 điều chỉnh xung PWM để đạt điện áp đầu ra mong muốn.
Tụ lọc và cuộn cảm làm mịn xung PWM để tạo ra tín hiệu DC ổn định.
2.6.4 Các ứng dụng thực tế
1 Hệ thống tự động hóa: Cấp nguồn cho động cơ DC, băng tải, hoặc robot.
2 Thiết bị chiếu sáng: Nguồn cấp cho đèn LED hoặc hệ thống chiếu sáng công nghiệp.
3 Thiết bị điện tử: Sử dụng trong máy in, hệ thống âm thanh, và các thiết bị viễn thông.
1 Dự án DIY: Hạ áp từ pin hoặc nguồn tổ ong để cấp nguồn cho vi điều khiển như
2 Thiết bị di động: Sạc pin lithium hoặc cấp nguồn cho cảm biến.
3 Hệ thống nhúng: Điều chỉnh điện áp để phù hợp với các linh kiện khác nhau trong mạch.
THIẾT KẾ VÀ THI CÔNG MẠCH
Thiết kế mạch
3.1.1 Sơ đồ khối a) Khối nguồn
Chức năng: Tạo ra dòng điện ổn định cung cấp cho toàn bộ hệ thống.
Nguồn tổ ong 12V 10A: Cung cấp nguồn chính cho động cơ DC và LM2596.
Mạch hạ áp LM2596: Hạ áp 12V xuống 5V để cấp cho Arduino và các linh kiện khác. b) Khối phát (Cảm biến hồng ngoại)
Chức năng: Phát ra tín hiệu hồng ngoại liên tục để khối thu sử dụng khi phát hiện sản phẩm.
Bộ phát hồng ngoại (IR LED) trong cảm biến hồng ngoại E3F-DS30CP1. c) Khối thu (Cảm biến hồng ngoại)
Chức năng: Thu tín hiệu phản xạ từ sản phẩm và chuyển tín hiệu đó thành xung điện (xung clock) để truyền đến Arduino.
Bộ thu hồng ngoại (IR Receiver) trong cảm biến hồng ngoại E3F-DS30CP1. d) Khối đếm
Chức năng: Nhận xung clock từ cảm biến hồng ngoại, thưc hiện việc đếm và lưu giá trị số lượng sản phẩm.
Arduino Uno R3: Xử lý tín hiệu từ cảm biến, thực hiện quá trình đếm và chuyển giá trị sang các khối khác. e) Khối giải mã
Chức năng: Chuyển đổi giá trị từ Arduino thành giá trị để hiển thị.
Arduino Uno R3: Chuyển đổi dữ liệu sang giao thức I2C để truyền đến LCD. f) Khối hiển thị
Chức năng: Hiển thị số lượng sản phẩm đã được đếm.
Màn hình LCD I2C: Nhận dữ liệu từ Arduino và hiển thị số lượng sản phẩm. g) Khối truyền động
Chức năng: Làm cho băng tải chạy theo một chiều nhất định.
Mạch điều khiển L298N: nhận tín hiệu từ Arduino và điều khiển động cơ DC chạy 1 chiều khi được cấp nguồn. h) Khối phân loại
Chức năng: Phân loại sản phẩm sau khi cảm biến phát hiện vật thể.
Động cơ Servo MG996R: nhận tính hiệu từ chân xung PWM của Arduino và phân loại sản phẩm.
3.1.2 Sơ đồ nguyên lý từng khối a) Khối nguồn
- Cấp điện áp 12VDC vào LM298 để hạ áp thành còn 5V
- Bộ hạ áp LM2596 hoạt động dựa trên nguyên lý chuyển mạch với tần số cố định (thường là 150kHz).
Khi công tắc MOSFET trong pha 1 được bật, điện áp đầu vào Vin sẽ được truyền trực tiếp qua cuộn cảm L đến tải Quá trình này khiến cuộn cảm tích trữ năng lượng dưới dạng từ trường, và dòng điện qua cuộn cảm sẽ tăng dần theo thời gian.
Khi công tắc bên trong ở chế độ tắt (OFF), điện áp đầu vào sẽ bị ngắt khỏi cuộn cảm Năng lượng tích trữ trong cuộn cảm sẽ bắt đầu phóng ra và cung cấp năng lượng cho mạch.
Cảm biến, Servo, Arduino Uno R3
Khối nguồn Bộ hạ áp LM2596
Khối nguồn Khối giải mã
Khối phân loại dòng điện cho tải sử dụng diode hồi lưu, trong đó tụ điện C ở đầu ra có vai trò lọc dòng điện để tạo ra điện áp DC ổn định.
-Từ đó, cấp điện áp 5v cho các thiết bị ngoại vi (Cảm biến, Servo, Arduino Uno R3) b) Khối thu phát, khối đếm
Khối nguồn: Lấy nguồn 220VAC, qua mạch hạ áp LM2596 thành 5v cung cấp điện áp cho cảm biến hồng ngoại.
Cảm biến hồng ngoại: Thu nhận dữ liệu từ môi trường bên ngoài và chuyển đổi thành tín hiệu điện để xử lý.
Khối phát và khối thu:
- Đèn LED trong cảm biến phát ra tia hồng ngoại theo xung tín hiệu đã được điều chế bởi:
+ Khuếch đại để tăng cường độ mạnh do mạch khuếch đại
Lọc tín hiệu giúp loại bỏ nhiễu từ mạch lọc, ví dụ như lọc tần số 38kHz để tránh nhiễu từ ánh sáng môi trường, từ đó đảm bảo khối thu có khả năng nhận biết chính xác hơn.
- Khi không có sản phẩm:
+ Tia hồng ngoại từ đèn LED phát ra liên tục được nhận liên tục bởi cảm biến thu (photodiode hoặc phototransistor).
Khối thu chuyển đổi tín hiệu ánh sáng thành tín hiệu điện áp Khi không có sản phẩm, khối thu sẽ nhận tín hiệu điện áp yếu hoặc thậm chí không nhận được tín hiệu nào.
+ Sản phẩm ở phạm vi gần làm tia hồng ngoại bị phản xạ từ bề mặt sản phẩm trở lại khối thu.
+ Điện áp đầu ra tăng lên báo hiệu có sản phẩm tới.
+ Tín hiệu tương tự (Analog): Điện áp đầu ra thay đổi liên tục theo cường độ ánh sáng hồng ngoại nhận được.
+ Tín hiệu số (Digital): Đầu ra là tín hiệu nhị phân; “0” là không có vật và “1” là có vật.
Tín hiệu điện áp sẽ được đưa vào vi điều khiển và bộ đếm để phân tích, nhằm xác định trạng thái có sản phẩm hay không Kết quả sẽ được ghi nhận và hiển thị số lần sản phẩm đi qua thông qua màn hình LCD Khối giải mã đóng vai trò quan trọng trong quá trình này.
Bộ chuyển đổi tín hiệu (ADC) từ analog sang digital
Mạch Clock Cổng giao tiếp
Khối nguồn sử dụng nguồn 220VAC và qua mạch hạ áp LM2596 để chuyển đổi thành 5V, cung cấp điện cho Arduino Uno R3 qua cổng USB hoặc chân Vin Mạch ổn áp bên trong Arduino sẽ chuyển đổi điện áp cấp thành mức điện áp ổn định, thường là 3.3V hoặc 5V, nhằm cung cấp năng lượng cho các linh kiện khác.
Bộ nhớ sử dụng ba bộ nhớ chính gồm:
+ Flash Memory: Lưu chương trình lập trình qua Arduino IDE và không bị xóa khi mất nguồn.
+ SRAM: Lưu trữ các biến tạm thời khi chương trình đang chạy; dung lượng giới hạn (chỉ có 2KB SRAM).
+ EEPROM: Lưu dữ liệu sau khi Arduino tắt nguồn.
Flash Memory lưu trữ đoạn code điều khiển Servo và cảm biến, trong khi SRAM giữ trạng thái hiện tại của góc Servo và trạng thái cảm biến (HIGH/LOW) EEPROM ghi lại trạng thái cuối cùng của Servo và cảm biến khi Arduino tắt nguồn, giúp hệ thống khôi phục về trạng thái ban đầu khi được bật lại.
Khi được cấp nguồn, vi điều khiển sẽ đọc chương trình từ bộ nhớ Flash Memory Nó nhận tín hiệu từ cảm biến hồng ngoại qua chân số 7, sau đó xử lý dữ liệu và phát tín hiệu PWM để điều khiển động cơ servo thông qua chân số 9.
Mạch Clock: Đảm bảo rằng tín hiệu PWM phát ra ở tần số cố định để động cơ hoạt động mượt mà.
Bộ chuyển đổi tín hiệu ADC là thiết bị quan trọng giúp vi điều khiển nhận tín hiệu analog từ cảm biến ánh sáng Bộ ADC chuyển đổi tín hiệu này thành giá trị số trong khoảng từ 0 đến 1023, tương ứng với dải điện áp thường từ 0 đến 5V.
+ Input: Nhận tín hiệu từ cảm biến (từ chân số 7).
- Analog: giá trị biến thiên liên tục (0V-5V)
+ Output: Gửi tín hiệu đến động cơ Servo gạt sản phẩm (qua chân số 9). d) Khối hiển thị
Khối nguồn: Lấy nguồn 220VAC, qua mạch hạ áp LM2596 thành 5v cung cấp điện áp cho màn hình LCD.
Cổng giao tiếp: Đây là nơi cảm biến gửi tín hiệu đến mạch điều khiển LCD.
Mạch điều khiển LCD nhận tín hiệu từ cổng giao tiếp và mỗi khi cảm biến gửi tín hiệu HIGH hoặc một xung, mạch sẽ tăng giá trị biến đếm Sau đó, giá trị biến đếm được chuyển đổi thành dạng dữ liệu để hiển thị trên màn hình.
Màn hình hiển thị sẽ liên tục cập nhật giá trị số đếm sau khi nhận tín hiệu điều khiển từ vi điều khiển, khi cảm biến phát hiện sản phẩm.
+ Dòng 1: Hiển thị tiêu đề “DEM SO LUONG SP”.
+ Dòng 2: Hiển thị “SO LUONG: “và giá trị biến đếm. e) Khối phân loại
Khối nguồn: Lấy nguồn 220VAC, qua mạch hạ áp LM2596 thành 5v cung cấp điện áp cho động cơ Servo.
Khối giải mã: Tín hiệu được đưa vào khối giải mã để xử lý và chuyển thành các lệnh điều khiển động cơ Servo.
Khối nguồn Động cơServoMG996r
+ Servo nhận tín hiệu từ chân PWM (chân số 9) của Arduino Uno R3.
Tín hiệu điều khiển cho servo là xung PWM với độ rộng thay đổi theo góc quay Cụ thể, độ rộng xung 1ms tương ứng với góc 0°, 1.5ms cho góc 90°, và 2ms là góc 180°.
Khối nguồn: Cấp điện áp 12V cho Module L298N.
Module L298N: Nhân điện áp 12V và nhận tín hiệu điều khiển từ Arduino Uno R3.
+ Điều chỉnh hướng quay động cơ (IN3 và IN4).
+ Điều chỉnh tốc độ động cơ (từ chân PWM số 9 qua chân ENB).
Động cơ một chiều: Nhận điện áp và quay theo hướng và tốc độ được điều khiển từ module L298N.
3.1.3 Lưu đồ giải thuật của hệ thống
Kiểm tra còn sản phẩm hay không?
Servo về lại vị trí ban đầu Servo gạt sản phẩm
Không phát hiện sản phẩm Cảm biến
Hiển thị số lượng sản phẩm trên màn hình LCD
Thi công mạch
3.2.1.1 Phần mềm thiết kế và mô phỏng Frizing.
Để thiết kế mạch in, có nhiều phần mềm khác nhau như Proteus, Altium Designer, và Orcad Layout Tuy nhiên, trong bài viết này, chúng ta sẽ sử dụng phần mềm Proteus nhờ vào tính năng đa dạng và giao diện thân thiện của nó, giúp việc thiết kế và mô phỏng mạch trở nên dễ dàng hơn.
Proteus là phần mềm thiết kế và mô phỏng mạch điện tử mạnh mẽ, cung cấp công cụ thiết kế PCB với tính năng vẽ sơ đồ, bố trí và định tuyến PCB, hỗ trợ autorouting, và kiểm tra tính toàn vẹn thiết kế Phần mềm này cũng cho phép xem trước thiết kế dưới dạng 3D, cùng với thư viện thành phần phong phú và khả năng phân tích tín hiệu, nhiệt để tối ưu hóa thiết kế Mô phỏng mạch điện trong Proteus 8 hỗ trợ cả mạch tương tự và số, bao gồm vi điều khiển như PIC, AVR, ARM, và Arduino Tính năng mô phỏng tương tác, mô phỏng đồng thời với SPICE, và công cụ gỡ lỗi mạnh mẽ giúp người dùng kiểm tra và hoàn thiện thiết kế một cách hiệu quả.
Hình 3.2 Phần mềm Arduino IDE
Phần mềm này là công cụ thiết yếu cho việc lập trình Arduino, cho phép người dùng viết và tải mã code vào thiết bị Nhờ đó, các lệnh đã được lập trình có thể được thực hiện trên mô hình thực tế và trong môi trường mô phỏng.
Arduino IDE là phần mềm mã nguồn mở chính thức, được thiết kế để viết và biên dịch mã cho các module Arduino Phần mềm này giúp đơn giản hóa quy trình biên dịch, cho phép ngay cả những người không có kiến thức kỹ thuật cũng có thể sử dụng dễ dàng.
Có nhiều loại module Arduino như Arduino Uno, Mega, Leonardo và Micro, mỗi module đều có một bộ vi điều khiển được lập trình Mã chính, hay còn gọi là sketch, được tạo ra trên nền tảng IDE, từ đó tạo ra file Hex để tải lên bộ điều khiển Môi trường IDE gồm hai phần chính: Trình chỉnh sửa để viết mã và Trình biên dịch để biên dịch và tải mã lên module IDE hỗ trợ cả ngôn ngữ C và C++.
Fritzing là phần mềm mã nguồn mở lý tưởng cho việc học tập và thiết kế mạch điện tử, đặc biệt dành cho người mới bắt đầu và các dự án DIY Với giao diện trực quan, Fritzing giúp người dùng dễ dàng tạo, mô phỏng và tài liệu hóa các mạch điện tử một cách hiệu quả.
Fritzing nổi bật với tính năng tạo sơ đồ bố trí mạch trên bảng mạch thử (breadboard), cho phép người dùng mô phỏng cách sắp xếp linh kiện giống như trong thực tế Giao diện trực quan hiển thị các linh kiện phổ biến như Arduino, cảm biến, điện trở, và đèn LED, giúp người dùng dễ dàng hình dung cách kết nối và lắp ráp mạch.
Fritzing cung cấp chế độ Schematic View để hỗ trợ thiết kế sơ đồ nguyên lý mạch điện, cho phép người dùng chuyển đổi từ sơ đồ bố trí sang sơ đồ nguyên lý với các ký hiệu kỹ thuật tiêu chuẩn Chế độ này không chỉ giúp trình bày mạch một cách chuyên nghiệp mà còn thuận tiện cho việc chia sẻ thiết kế trong cộng đồng và sử dụng cho mục đích sản xuất.
Fritzing là một công cụ điện tử linh hoạt và trực quan, rất hữu ích cho việc học tập và thực hành, từ các dự án đơn giản đến thiết kế mạch phức tạp.
3.2.2 Quá trình mô phỏng mạch trên phần mềm
3.2.2.1 Thi công mạch trên phần mềm frizing
Hình 3.4 Sơ đồ kết nối của mô hình
Để thực hiện đề bài "Thi công mô hình đếm số lượng sản phẩm và hiển thị lên màn hình LCD, phân loại bằng động cơ servo", nhóm chúng tôi đã nghiên cứu kỹ lưỡng các thiết bị và mạch cần thiết Chúng tôi bắt đầu từ việc tham khảo catalog và datasheet của các linh kiện, mạch điều khiển và Arduino để hiểu rõ sơ đồ chân và cách kết nối các bộ phận Sau khi hoàn tất nghiên cứu, chúng tôi tiến hành thi công mạch mô phỏng bằng phần mềm Fritzing, một công cụ hữu ích cho việc thiết kế mô hình trước khi thực hiện lắp ráp thực tế Với giao diện thân thiện và dễ sử dụng, Fritzing giúp việc thi công mạch trở nên rõ ràng và thẩm mỹ hơn.
3.2.2.2 Mô phỏng mô hình trên phần mềm Protues
Hình 3.5 Sơ đồ mô phỏng của mô hình
Sau khi hoàn thiện ý tưởng và sơ đồ bố trí mô hình trên Frizing, bước tiếp theo là thiết kế sơ đồ mạch điện và mô phỏng mô hình bằng phần mềm Protues, một công cụ nổi bật trong thiết kế và mô phỏng mạch điện, đặc biệt hỗ trợ Arduino Tuy nhiên, Protues không tích hợp sẵn thư viện cho Arduino, L298N, và cảm biến IR, do đó cần tải thêm thư viện từ internet để thực hiện mô phỏng Việc đi dây điện trở nên đơn giản nhờ vào sơ đồ đã thiết lập trên Frizing và kiến thức về phần mềm Tuy nhiên, trong quá trình mô phỏng, cảm biến IR không hoạt động như mong đợi; sau khi tham khảo các diễn đàn, chúng tôi phát hiện rằng có thể thay thế bằng Torch, một cảm biến ánh sáng, để đạt được kết quả mô phỏng tương tự mà vẫn đảm bảo tính năng hoạt động.
Hình 3.6 Chạy mô phỏng mô hình
Việc thay thế cảm biến hồng ngoại đã giúp quá trình mô phỏng diễn ra suôn sẻ Sau khi hoàn tất mô phỏng trên phần mềm, bước tiếp theo là lắp ráp mô hình thực tế.
3.2.2.3 Viết chương trình trên phần mềm Arduino IDE
Việc viết chương trình là một phần không thể thiếu trong các dự án sử dụng vi điều khiển như Arduino Uno R3, bên cạnh việc lên ý tưởng và mô phỏng mô hình Mặc dù có thể gặp khó khăn trong quá trình lập trình, nhưng với kiến thức nền tảng và sự hỗ trợ từ phần mềm, việc này trở nên dễ dàng hơn Việc viết chương trình cho từng thành phần và mô phỏng giúp kiểm soát dòng lệnh hiệu quả, phát hiện lỗi kịp thời và tiết kiệm thời gian Phương pháp này giúp quá trình lập trình từ đầu đến hoàn thiện trở nên nhanh chóng và đơn giản hơn Dưới đây là phần chương trình hoàn chỉnh:
#include // Thư viện servo
LiquidCrystal_I2C LCD(0x27,16,2); //LCD 16x02, địa chỉ I2C là 0X27
Servo myServo; // Tạo đối tượng servo int cambien = 7; // Chân cảm biến nối chân số 7 Arduino int giatri=0; int giatribandau = 0; int dem = 0;
// Định nghĩa chân cho L298N (động cơ DC) int IN3 = 2; int IN4=4; int ENB = 3;
// Định nghĩa chân cho Servo int servoPin = 9; // Chân điều khiển Servo void setup()
// Cài đặt chân cho L298N pinMode(IN3, OUTPUT); pinMode(IN4,OUTPUT); pinMode(ENB, OUTPUT);
To start the DC motor, set the enable pin to HIGH using digitalWrite(ENB, HIGH) Activate the motor by writing LOW to IN3, allowing it to run clockwise with IN4 set to HIGH Finally, control the motor speed by applying a PWM signal with analogWrite(ENB, 255) to achieve maximum speed.
// Khởi động servo myServo.attach(servoPin); // Gắn servo vào chân điều khiển (servoPin) myServo.write(90); // Đặt servo ban đầu ở góc 0 độ pinMode(cambien, INPUT);
LCD.init(); // Khởi động LCD
LCD.backlight(); // Bật đèn nền
LCD.print("DEM SO LUONG SP");
LCD.print("SO LUONG SP:");
{ giatri = digitalRead(cambien); // Đọc giá trị digital từ cảm biến và gán vào biến giatri if (giatri != giatribandau) // Giá trị đọc từ cảm biến khác giá trị mặc định
{ if (giatri == 1) // Nếu giá trị = 1
// Điều khiển servo myServo.write(0); // Gạt sản phẩm bằng servo (xoay 90 độ) delay(2000); // Đợi 2 giây myServo.write(90); // Quay lại vị trí ban đầu delay(2000); // Đợi 2 giây
} giatribandau = giatri; // Giá trị mặc định = giá trị
// Khởi động lại động cơ DC digitalWrite(IN3, LOW); digitalWrite(IN4,HIGH); analogWrite(ENB, 255); // Đặt tốc độ động cơ
Nguyên lý hoạt động của mô hình
Kết nối nguồn tổ ong với điện áp 220VAC và bật CB để cung cấp nguồn 12V DC cho động cơ DC qua mạch L298N Mạch hạ áp LM2596 chuyển đổi 12V DC thành 5V DC để cấp nguồn ổn định cho Arduino Uno R3 và các thiết bị như màn hình LCD, động cơ Servo MG996R, và cảm biến hồng ngoại E3F-DS30CP1 Khi Arduino được cấp nguồn, nó gửi tín hiệu PWM đến mạch L298N để điều khiển động cơ DC quay theo hướng đã cài đặt Khi băng tải hoạt động, sản phẩm được đặt lên băng tải và khi đi qua cảm biến, tín hiệu logic HIGH được gửi về Arduino Arduino đếm số xung clock từ cảm biến hồng ngoại, chuyển đổi từ mã BCD sang mã nhị phân và hiển thị số lượng sản phẩm trên màn hình LCD Động cơ Servo nhận tín hiệu PWM từ Arduino để phân loại sản phẩm sau thời gian lập trình Mô hình hoạt động liên tục theo chu kỳ, và khi cần reset màn hình LCD về 0, nhấn nút reset trên Arduino Uno R3 Khi không sử dụng, tắt CB để ngừng cấp điện, dừng hoạt động của động cơ, Arduino và các thiết bị ngoại vi khác.
THỰC NGHIỆM
Kết quả thực hiện đếm sản phẩm trên mạch thực tế
Hình 4.1 Mô hình lắp ráp hoàn thiện
Hình 4.2 Mô hình hoạt động thực tế
Mô hình đếm sản phẩm sử dụng cảm biến hồng ngoại kết hợp với động cơ servo đã đạt được kết quả hoạt động chính xác, ổn định và hiệu quả.
Ưu điểm và nhược điểm của mạch đếm và phân loại sản phẩm
Mô hình băng tải đếm và phân loại sản phẩm mang lại nhiều lợi ích như gọn nhẹ, chính xác và dễ lắp đặt, sửa chữa Nó không chỉ phục vụ nhu cầu học tập của sinh viên mà còn đáp ứng hiệu quả trong dây chuyền sản xuất, thay thế công việc của công nhân với chỉ một người vận hành, từ đó tối ưu hóa chi phí nhân công Mô hình sử dụng linh kiện giá rẻ như cảm biến E3F-DS30CP1 và vi điều khiển Arduino, dễ dàng tìm thấy trên thị trường Hệ thống hoạt động với nguồn điện 12V, giúp tiết kiệm năng lượng hiệu quả.
Mô hình này, mặc dù có nhiều ưu điểm, vẫn gặp một số khuyết điểm Cụ thể, tín hiệu hồng ngoại từ LED phát ra không đủ mạnh để truyền xa, do đó cần phải giữ khoảng cách giữa cảm biến và vật ở mức gần, tối ưu nhất là trong khoảng 30cm.
Động cơ Servo MG996r có momen xoắn từ 9.4kg/cm đến 11kg/cm, phù hợp cho việc phân loại các sản phẩm nhỏ như chai bia và nước ngọt Để nâng cao hiệu quả phân loại, cần xem xét việc sử dụng động cơ Servo với momen xoắn cao hơn, phục vụ cho các dây chuyền sản xuất lớn hơn.
Màn hình LCD 16x2 có kích thước nhỏ, chủ yếu phục vụ cho việc nghiên cứu và học tập của sinh viên Để ứng dụng hiệu quả trong thực tiễn, cần chuyển sang các loại màn hình hiển thị lớn hơn.
Việc căn chỉnh thời gian của động cơ Servo để phân loại sản phẩm trên băng tải nhỏ là cần thiết, nhưng gặp khó khăn nếu vật không đúng vị trí Để khắc phục, cần bổ sung cảm biến E3F-DS10P1 để cải thiện tín hiệu cho động cơ Servo, giúp hoạt động mượt mà hơn.