Giới thiệu cảm biến màu sắc TCS3200 GY-31
Cảm biến màu sắc TCS3200 GY-31 được sử dụng để nhận biết màu sắc bằng cách đo phản xạ 3 màu sắc cơ bản từ vật thể là đỏ, xanh lá và xanh dương từ đó xuất ra tần số xung tương ứng với 3 màu này qua các chân tín hiệu, đo 3 tần số xung này và qua 1 vài bước chuyển đổi nhất định là bạn sẽ có đươc thông tin của màu sắc của vật thể cần đo.
Cảm biến rất thích hợp để làm các đề tài đơn giản, giao tiếp với vi điều khiển để nhận biết các màu.
Cảm biến màu GY-31 TCS3200, bảng mạch màu đen, 4 chân LED ngắn khó hư hỏng hơn.
Cảm biến màu sắc TCS3200 được sử dụng để nhận biết màu sắc bằng cách đo phản xạ 3 màu sắc cơ bản từ vật thể là đỏ, xanh lá và xanh dương từ đó xuất ra tần số xung tương ứng với 3 màu này qua các chân tín hiệu, đo 3 tần số xung này và qua 1 vài bước chuyển đổi nhất định là bạn sẽ có đươc thông tin của màu sắc của vật thể cần đo.
Chức năng các chân
- VCC : Cấp nguồn 5V.
- GND : Cấp nguồn 0V.
- S0, S1 : Dùng để lựa chọn tỷ lệ tần số.
- S2, S3 : Dùng lựa chọn kiểu photodiod
- OUT : Đầu ra tín hiệu tần số
- OE : Enable mức thấp
Thông số kỹ thuật cảm biến màu sắc TCS3200 GY-31
- Điện áp hoạt động : 3V – 5.5V
- Dòng điện : 2mA
- Công suất : 10mW
- Chuẩn truyền : Đọc tần số màu
- Nhiệt độ hoạt động : -40°C – 85°C
- Dãy hoạt động : RGB
- Số chân : 10
- Loại : Module
- Kích thước : 75.3mm*12.7mm*12.7mm
Nguyên lý hoạt động
- Ánh sáng trắng là hỗn hợp rất nhiều ánh sáng có bước sóng màu sắc khác nhau.
- Khi ta chiếu ánh sáng trắng vào một vật thể bất kì. Tại bề mặt vật thể sẽ xảy ra hiện tượng hấp thụ và phản xạ ánh sáng .
-
Khối đầu tiên là mảng ma trận 8×8 gồm các photodiode.Bao gồm 16 photodiode có thể lọc màu sắc xanh dương (Blue),16 photodiode có thể lọc màu đỏ (Red),16 photodiode có thể lọc màu xanh lá(Green) và 16 photodiode trắng không lọc (Clear).Tất cả photodiode cùng màu được kết nối song song với nhau ,và được đặt xen kẽ nhau nhằm mục đích chống nhiễu.
-
Bản chất của 4 loại photodiode trên như là các bộ lọc ánh sáng có mầu sắc khác nhau .Có nghĩa nó chỉ tiếp nhận các ánh sáng có cùng màu với loại photodiode tương ứng và không tiếp nhận các ánh sáng có màu sắc khác.
Chương trình Test sản phẩm
Nguyên lý kết nối
Chương trình
#define S0 4 #define S1 5 #define S2 6 #define S3 7 #define sensorOut 8 // Calibration Values // *Get these from Calibration Sketch int redMin = 0; // Red minimum value int redMax = 0; // Red maximum value int greenMin = 0; // Green minimum value int greenMax = 0; // Green maximum value int blueMin = 0; // Blue minimum value int blueMax = 0; // Blue maximum value // Variables for Color Pulse Width Measurements int redPW = 0; int greenPW = 0; int bluePW = 0; // Variables for final Color values int redValue; int greenValue; int blueValue; void setup() { // Set S0 - S3 as outputs pinMode(S0, OUTPUT); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT); // Set Sensor output as input pinMode(sensorOut, INPUT); // Set Frequency scaling to 20% digitalWrite(S0,HIGH); digitalWrite(S1,LOW); // Setup Serial Monitor Serial.begin(9600); } void loop() { // Read Red value redPW = getRedPW(); // Map to value from 0-255 redValue = map(redPW, redMin,redMax,255,0); // Delay to stabilize sensor delay(200); // Read Green value greenPW = getGreenPW(); // Map to value from 0-255 greenValue = map(greenPW, greenMin,greenMax,255,0); // Delay to stabilize sensor delay(200); // Read Blue value bluePW = getBluePW(); // Map to value from 0-255 blueValue = map(bluePW, blueMin,blueMax,255,0); // Delay to stabilize sensor delay(200); // Print output to Serial Monitor Serial.print("Red = "); Serial.print(redValue); Serial.print(" - Green = "); Serial.print(greenValue); Serial.print(" - Blue = "); Serial.println(blueValue); } // Function to read Red Pulse Widths int getRedPW() { // Set sensor to read Red only digitalWrite(S2,LOW); digitalWrite(S3,LOW); // Define integer to represent Pulse Width int PW; // Read the output Pulse Width PW = pulseIn(sensorOut, LOW); // Return the value return PW; } // Function to read Green Pulse Widths int getGreenPW() { // Set sensor to read Green only digitalWrite(S2,HIGH); digitalWrite(S3,HIGH); // Define integer to represent Pulse Width int PW; // Read the output Pulse Width PW = pulseIn(sensorOut, LOW); // Return the value return PW; } // Function to read Blue Pulse Widths int getBluePW() { // Set sensor to read Blue only digitalWrite(S2,LOW); digitalWrite(S3,HIGH); // Define integer to represent Pulse Width int PW; // Read the output Pulse Width PW = pulseIn(sensorOut, LOW); // Return the value return PW; }
Liên hệ làm mạch
- Phone: 0967.551.477
- Zalo: 0967.551.477
- Chi tiết : Nhận làm mạch và hướng dẫn đồ án sinh viên
Tham khảo chương trình mẫu và thông tin linh kiện chi tiết tại:
Reviews
There are no reviews yet.