Danh sách sản phẩm

Cảm biến màu GY-31 (TCS3200)

Thương hiệu: Đang cập nhật   |   Tình trạng: Còn hàng
90.000₫

Cảm biến màu GY-31 Nguồn 2.7 -> 5.5VDC, OUT: Đầu ra tín hiệu tần số, Ngõ ra: 3 tần số xung tương ứng 3 màu đỏ xanh dương và xanh lá

Chỉ có ở iMaker
  • Giao hàng 24h
    Giao hàng 24h
  • Đảm bảo chất lượng
    Đảm bảo chất lượng
  • Tích điểm tất cả sản phẩm
    Tích điểm tất cả sản phẩm
  • Ưu đãi cập nhật thường xuyên
    Ưu đãi cập nhật thường xuyên

Mô tả sản phẩm

Cảm biến màu GY-31 sử dụng IC TAOS TCS3200 RGB với 4 led trắng. Cảm biến màu TCS3200 có thể phát hiện và đo lường một phạm vi gần như vô hạn của màu sắc có thể nhìn thấy. Cảm biến màu TCS3200 tích hợp 1 dãy  bộ dò ánh sáng quang bên trong, với mỗi cảm biến ứng với các màu đỏ, xanh lá, xanh dương.

Các bộ lọc của mỗi màu được phân bố đều khắp cảm biến để loại bỏ sai lệch vị trí giữa các màu sắc. bên trong cảm biến có bộ dao động tạo ra sóng vuông có tần số là tỷ lệ thuận với cường độ của màu sắc được lựa chọn.

Cảm biến màu GY-31 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.

THÔNG SỐ CẢM BIẾN MÀU GY-31

  • Nguồn 2.7 -> 5.5VDC
  • Ngõ ra: 3 tần số xung tương ứng 3 màu đỏ xanh dương và xanh lá.
  GND   GND
  OE   Enable (Mức Thấp)
  OUT   Đầu ra tín hiệu tần số
  S0, S1   Dùng để lựa chọn tỷ lệ tần số
  S2, S3   Dùng để lựa chọn kiểu photodiod
  VCC   2.7V đến 5.5V

 

SƠ ĐỒ ĐẤU VỚI VỚI ARDUINO (VÍ DỤ)

Chức năng chân cảm biến màu:

+ S0,S1 : Đầu vào chọn tỉ lệ tần số đầu ra .

+ S2,S3 : Đầu vào chọn kiểu photodiode.

+ OE : Đầu vào cho phép xuất tần số ở chân OUT.

+ OUT : Đầu ra là tần số thay đổi phụ thuộc cường độ và màu sắc.

 

—————–CODE THAM KHẢO—————-

/*
Color Sensor      Arduino
-----------      --------
 VCC               5V
 GND               GND
 s0                8
 s1                9
 s2                12
 s3                11
 OUT               10
 OE                GND
*/
const int s0 = 8;  
const int s1 = 9;  
const int s2 = 12;  
const int s3 = 11;  
const int out = 10;   
// LED pins connected to Arduino
int redLed = 2;  
int greenLed = 3;  
int blueLed = 4;
// Variables  
int red = 0;  
int green = 0;  
int blue = 0;  
    
void setup()   
{  
  Serial.begin(9600); 
  pinMode(s0, OUTPUT);  
  pinMode(s1, OUTPUT);  
  pinMode(s2, OUTPUT);  
  pinMode(s3, OUTPUT);  
  pinMode(out, INPUT);  
  pinMode(redLed, OUTPUT);  
  pinMode(greenLed, OUTPUT);  
  pinMode(blueLed, OUTPUT);  
  digitalWrite(s0, HIGH);  
  digitalWrite(s1, HIGH);  
}  
    
void loop() 
{  
  color(); 
 /* Serial.print("R Intensity:");  
  Serial.print(red, DEC);  
  Serial.print(" G Intensity: ");  
  Serial.print(green, DEC);  
  Serial.print(" B Intensity : ");  
  Serial.print(blue, DEC);  */
  //Serial.println();  

  if (red < blue && red < green && red < 20)
  {  
   Serial.println(" - (Red Color)");  
   digitalWrite(redLed, HIGH); // Turn RED LED ON 
   digitalWrite(greenLed, LOW);  
   digitalWrite(blueLed, LOW);  
  }  

  else if (blue < red && blue < green)   
  {  
   Serial.println(" - (Blue Color)");  
   digitalWrite(redLed, LOW);  
   digitalWrite(greenLed, LOW);  
   digitalWrite(blueLed, HIGH); // Turn BLUE LED ON  
  }  

  else if (green < red && green < blue)  
  {  
   Serial.println(" - (Green Color)");  
   digitalWrite(redLed, LOW);  
   digitalWrite(greenLed, HIGH); // Turn GREEN LED ON 
   digitalWrite(blueLed, LOW);  
  }  
  else{
  Serial.println();  
  }
  delay(300);   
  digitalWrite(redLed, LOW);  
  digitalWrite(greenLed, LOW);  
  digitalWrite(blueLed, LOW);  
 }  
    
void color()  
{    
  digitalWrite(s2, LOW);  
  digitalWrite(s3, LOW);  
  //count OUT, pRed, RED  
  red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);  
  digitalWrite(s3, HIGH);  
  //count OUT, pBLUE, BLUE  
  blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);  
  digitalWrite(s2, HIGH);  
  //count OUT, pGreen, GREEN  
  green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);  
}

Khách hàng nhận xét