Arduino UNO R4 Cảm Biến Màu Sắc TCS3200D/TCS230
Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Arduino UNO R4 và module cảm biến nhận diện màu TCS3200D/TCS230 để hiệu chỉnh và đọc giá trị RGB từ các vật thể và phát hiện màu sắc.
- Cách kết nối cảm biến màu TCS3200D/TCS230 với Arduino UNO R4
- Cách hiệu chỉnh cảm biến cho môi trường của bạn
- Cách viết code cho Arduino UNO R4 để đọc giá trị RGB từ cảm biến

Linh Kiện Cần Thiết
| 1 | × | Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima | ||
| 1 | × | (Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi | ||
| 1 | × | Arduino UNO R4 Minima (Thay thế) | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | Module Cảm Biến Nhận Diện Màu TCS3200D/TCS230 | ||
| 1 | × | Dây Cắm Jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Power Splitter for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Giới Thiệu Về Cảm Biến Màu TCS3200D/TCS230
TCS3200D/TCS230 là một module cảm biến nhận diện màu sử dụng ma trận 8x8 photodiode. Mười sáu photodiode có bộ lọc màu đỏ, 16 có bộ lọc màu xanh lá, 16 có bộ lọc màu xanh dương, và 16 không có bộ lọc (trong suốt). Module chuyển đổi cường độ ánh sáng thành tín hiệu tần số dạng sóng vuông. Bằng cách chuyển đổi các bộ lọc màu và đo tần số đầu ra (hoặc độ rộng xung), chúng ta có thể ước tính giá trị RGB của một vật thể.
Nhiều module bao gồm LED trắng để chiếu sáng mục tiêu. Điều này làm cho các kết quả đo đạc nhất quán hơn và giúp cảm biến phát hiện màu sắc một cách đáng tin cậy, ngay cả trong điều kiện ánh sáng yếu.
Pinout
Module cảm biến màu TCS3200D/TCS230 thường có các chân sau:
- Chân VCC: Kết nối chân này với VCC (5V).
- Chân GND: Kết nối chân này với GND (0V).
- Chân S0, S1: Lựa chọn tỷ lệ tần số đầu ra.
- Chân S2, S3: Lựa chọn bộ lọc màu.
- Chân OUT: Đầu ra tần số dạng sóng vuông.
- Chân OE: Cho phép đầu ra (kích hoạt ở mức LOW). Hầu hết các module đã kết nối chân này với GND bên trong, vì vậy bạn không cần phải nối dây. Nếu module của bạn không có, hãy kết nối nó với GND.

Nguyên Lý Hoạt Động
Cảm biến cần được thông báo hai điều: kênh màu nào cần đo, và mức độ mạnh của tín hiệu đầu ra. Hai cặp chân điều khiển xử lý điều này:
- S0 và S1 điều khiển tỷ lệ tần số đầu ra:
- S0 = LOW, S1 = LOW: Tắt nguồn
- S0 = LOW, S1 = HIGH: Tỷ lệ 2%
- S0 = HIGH, S1 = LOW: Tỷ lệ 20%
- S0 = HIGH, S1 = HIGH: Tỷ lệ 100%
- S2 và S3 lựa chọn bộ lọc màu:
- S2 = LOW, S3 = LOW: Bộ lọc đỏ
- S2 = LOW, S3 = HIGH: Bộ lọc xanh dương
- S2 = HIGH, S3 = LOW: Trong suốt (không có bộ lọc)
- S2 = HIGH, S3 = HIGH: Bộ lọc xanh lá
Chân OUT xuất ra một sóng vuông (thường là 2 Hz đến 500 kHz). Tần số tỷ lệ thuận với cường độ của màu được chọn, trong khi độ rộng xung tỷ lệ nghịch. Chúng ta có thể đo độ rộng xung bằng pulseIn() và sau đó chuyển đổi nó thành giá trị RGB sau khi hiệu chỉnh.
Mẹo Để Có Kết Quả Đọc Ổn Định
- Đặt cảm biến cách vật thể 1-3 cm và giữ góc độ nhất quán.
- Sử dụng LED trắng tích hợp để cung cấp ánh sáng ổn định.
- Che chắn cảm biến khỏi sự thay đổi ánh sáng môi trường để có kết quả chính xác hơn.
Sơ Đồ Kết Nối
Hình ảnh này cho thấy cách kết nối cảm biến màu TCS3200 với Arduino UNO R4:
| Cảm Biến Màu TCS3200 | Arduino UNO R4 |
|---|---|
| VCC | 5V |
| GND | GND |
| S0 | Pin 4 |
| S1 | Pin 3 |
| S2 | Pin 6 |
| S3 | Pin 5 |
| OUT | Pin 7 |

This image is created using Fritzing. Click to enlarge image
Code Arduino UNO R4 - Hiệu Chỉnh (Độ Rộng Xung)
Hiệu chỉnh là bắt buộc vì các kết quả đo thô của cảm biến bị ảnh hưởng bởi môi trường. Các yếu tố như độ sáng LED, khoảng cách, khả năng phản xạ bề mặt, và ánh sáng môi trường làm thay đổi các giá trị đo được. Bạn có thể nghĩ về những ảnh hưởng này như là "nhiễu." Bước hiệu chỉnh đầu tiên giúp bạn đo phạm vi nhiễu đó (tối thiểu và tối đa cho mỗi màu) để bạn có thể trừ đi ảnh hưởng của nó và ánh xạ các kết quả đọc thành giá trị RGB 0–255 chính xác cho thiết lập của bạn.
Các Bước Nhanh
Thực hiện theo các hướng dẫn sau từng bước:
- Nếu đây là lần đầu tiên bạn sử dụng Arduino Uno R4 WiFi/Minima, hãy tham khảo hướng dẫn về Arduino UNO R4 - Cài Đặt Phần Mềm.
- Kết nối bo mạch Arduino Uno R4 với cảm biến màu theo sơ đồ được cung cấp.
- Kết nối bo mạch Arduino Uno R4 với máy tính của bạn bằng cáp USB.
- Khởi động Arduino IDE trên máy tính của bạn.
- Chọn bo mạch Arduino Uno R4 phù hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
- Sao chép code ở trên và mở nó trong Arduino IDE.
- Nhấp vào nút Upload trong Arduino IDE để tải code lên Arduino UNO R4.
- Mở Serial Monitor. Bạn sẽ thấy các kết quả đọc liên tục cùng với giá trị Min và Max.
- Di chuyển cảm biến qua các vật thể khác nhau: một vật thể màu trắng (như giấy), một vật thể màu đen, và tùy chọn một số vật thể có màu.
- Quan sát các hàng Min và Max cập nhật tự động khi cảm biến theo dõi các giá trị cực trị.
- Khi các giá trị Min và Max ngừng thay đổi (thường sau 10-20 giây), đó là giá trị hiệu chỉnh của bạn - hãy ghi chúng lại.
Ví dụ, từ kết quả đầu ra ở trên, giá trị hiệu chỉnh của bạn sẽ là:
- RedMin = 42, redMax = 210
- GreenMin = 55, greenMax = 185
- BlueMin = 60, blueMax = 172
Code Arduino UNO R4 - Đọc Giá Trị RGB
Các Bước Nhanh
- Trong code ở trên, tìm các dòng này gần đầu:
- Thay thế TẤT CẢ sáu giá trị 0 bằng các số hiệu chỉnh của bạn từ bước trước. Ví dụ, nếu hiệu chỉnh của bạn cho kết quả redMin = 42, redMax = 210, greenMin = 55, greenMax = 185, blueMin = 60, blueMax = 172, hãy thay đổi các dòng thành:
- Tải code lên Arduino UNO R4.
- Đặt một vật thể có màu trước cảm biến.
- Kiểm tra kết quả trên Serial Monitor.
Giá trị RGB bây giờ được ánh xạ vào phạm vi tiêu chuẩn 0-255. Độ rộng xung thấp hơn (nhiều ánh sáng hơn) tạo ra giá trị RGB cao hơn, và độ rộng xung cao hơn (ít ánh sáng hơn) tạo ra giá trị RGB thấp hơn.
Ứng Dụng
Bây giờ khi bạn có thể đọc giá trị RGB, bạn có thể xây dựng các dự án như:
- Máy phân loại màu: Phân loại vật thể theo màu sắc (đỏ, xanh lá, xanh dương)
- Trò chơi ghép màu: Kiểm tra xem hai vật thể có cùng màu hay không
- Robot đi theo đường: Đi theo các đường có màu trên sàn
- Kiểm soát chất lượng: Phát hiện sản phẩm lỗi theo màu sắc
- Báo động kích hoạt bằng màu: Kích hoạt buzzer hoặc LED khi phát hiện một màu cụ thể
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.