Khác biệt giữa các bản “Cảm biến màu sắc TCS3200”

Từ ChipFC Wiki
Bước tới: chuyển hướng, tìm kiếm
(Sơ đồ chân)
(Sử dụng)
Dòng 45: Dòng 45:
 
const int s3 = 11;
 
const int s3 = 11;
 
const int out = 10;
 
const int out = 10;
 
+
//kết nối led với arduino để hiện thị theo màu dc nhận
int redLed =2;
+
//int redLed =2;
int greenLed=3;
+
//int greenLed=3;
int blueLed=4;
+
//int blueLed=4;
 
//variables
 
//variables
 
int red =0;
 
int red =0;
Dòng 60: Dòng 60:
 
   pinMode(s3,OUTPUT);
 
   pinMode(s3,OUTPUT);
 
   pinMode(out, INPUT);
 
   pinMode(out, INPUT);
  pinMode(redLed,OUTPUT);
+
// pinMode(redLed,OUTPUT);
  pinMode(greenLed,OUTPUT);
+
// pinMode(greenLed,OUTPUT);
  pinMode(blueLed,OUTPUT);
+
// pinMode(blueLed,OUTPUT);
 
   digitalWrite(s0,HIGH);
 
   digitalWrite(s0,HIGH);
 
   digitalWrite(s1,HIGH);
 
   digitalWrite(s1,HIGH);
Dòng 69: Dòng 69:
 
void loop() {
 
void loop() {
 
   color();
 
   color();
   Serial.print("R cường độ: ");
+
   Serial.print("Y cuong do: ");
 
   Serial.print(red,DEC);
 
   Serial.print(red,DEC);
   Serial.print("G cường độ: ");
+
   Serial.print("G cuong do: ");
 
   Serial.print(green,DEC);
 
   Serial.print(green,DEC);
   Serial.print("B cường độ: ");
+
   Serial.print("B cuong do: ");
 
   Serial.print(blue,DEC);
 
   Serial.print(blue,DEC);
 
  
 
   if(red < blue && red < green && red < 25)
 
   if(red < blue && red < green && red < 25)
 
   {
 
   {
     Serial.println("-red color");
+
     Serial.println("- red color");
    digitalWrite(redLed, HIGH);
+
//    digitalWrite(redLed, HIGH);
    digitalWrite(greenLed, LOW);
+
//    digitalWrite(greenLed, LOW);
    digitalWrite(blueLed,LOW);
+
//    digitalWrite(blueLed,LOW);
 
     delay(1000);
 
     delay(1000);
 
   }
 
   }
Dòng 89: Dòng 88:
 
     {
 
     {
 
       Serial.println("-blue color");
 
       Serial.println("-blue color");
      digitalWrite(redLed, LOW);
+
//    digitalWrite(redLed, LOW);
      digitalWrite(greenLed, LOW);
+
//    digitalWrite(greenLed, LOW);
      digitalWrite(blueLed,HIGH);     
+
//    digitalWrite(blueLed,HIGH);     
 
     } else {
 
     } else {
 
           if(green < red && green < blue)
 
           if(green < red && green < blue)
 
           {
 
           {
 
             Serial.println("-green color");
 
             Serial.println("-green color");
            digitalWrite(redLed, LOW);
+
//            digitalWrite(redLed, LOW);
            digitalWrite(greenLed, HIGH);
+
//            digitalWrite(greenLed, HIGH);
            digitalWrite(blueLed,LOW);   
+
//            digitalWrite(blueLed,LOW);   
 
           }
 
           }
 
           else{
 
           else{
Dòng 106: Dòng 105:
 
   }
 
   }
 
   delay(500);
 
   delay(500);
  digitalWrite(redLed, LOW);
+
//  digitalWrite(redLed, LOW);
  digitalWrite(greenLed, LOW);
+
//  digitalWrite(greenLed, LOW);
  digitalWrite(blueLed,LOW);
+
//  digitalWrite(blueLed,LOW);
 
}
 
}
 
void color()
 
void color()
Dòng 124: Dòng 123:
 
    
 
    
 
}
 
}
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|}
 
|}
 
  
 
== Tham khảo thêm ==
 
== Tham khảo thêm ==

Phiên bản lúc 16:55, ngày 31 tháng 7 năm 2017

Editor.png

Bài viết này đang được phát triển hoặc chỉnh sửa lớn.
Bạn có thể đóng góp để bài viết hoàn thiện hơn.
Sau khi chỉnh sửa xong thông báo này sẽ được gỡ bỏ.

Giới thiệu

  • Cảm biến nhận biết màu sắc và xuất ra 3 tần số xung tương ứng với 3 màu cơ bản là Đỏ, Xanh Lá và Xanh Dương, đo được 3 tần số xung này cùng với vài bước chuyển đổi nhất định sẽ có đươc thông tin của màu sắc cần đo.

Đặc điểm

  • Chuyển đổi cường độ ánh sáng thành tần số có độ phân giải cao.
  • Lập trình lựa chọn bộ lọc màu sắc khác nhau và dạng tần số xuất ra.
  • Dễ dàng giao tiếp với vi điều khiển.
  • Điện áp đầu vào 2.7-5.5V.

Sơ đồ chân

Thứ tự chân Tên gọi Mô tả
1 VCC nguồn 2,7-5,5V
2 GND mass
3 s1,s0 dùng để lựa chọn tỉ lệ tần số
4 s3,s2 dùng để lựa chọn kiểu photodiod
5 OUT đưa ra tín hiệu tần số
6 LED

Sử dụng

Sơ đồ kết nối

Source code mẫu:

const int s0 =8;
const int s1 =9 ;
const int s2 =12;
const int s3 = 11;
const int out = 10;
//kết nối led với arduino để hiện thị theo màu dc nhận
//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("Y cuong do: ");
  Serial.print(red,DEC);
  Serial.print("G cuong do: ");
  Serial.print(green,DEC);
  Serial.print("B cuong do: ");
  Serial.print(blue,DEC);

  if(red < blue && red < green && red < 25)
  {
    Serial.println("- red color");
//    digitalWrite(redLed, HIGH);
//    digitalWrite(greenLed, LOW);
//    digitalWrite(blueLed,LOW);
    delay(1000);
  }
  else{
    if(blue < red && blue < green)
    {
      Serial.println("-blue color");
 //     digitalWrite(redLed, LOW);
 //     digitalWrite(greenLed, LOW);
 //     digitalWrite(blueLed,HIGH);    
    } else {
          if(green < red && green < blue)
          {
            Serial.println("-green color");
//            digitalWrite(redLed, LOW);
//            digitalWrite(greenLed, HIGH);
//            digitalWrite(blueLed,LOW);  
          }
          else{
            Serial.println();  
          }
    }
  }
  delay(500);
//  digitalWrite(redLed, LOW);
//  digitalWrite(greenLed, LOW);
//  digitalWrite(blueLed,LOW);
}
void color()
{
  digitalWrite(s2, LOW);
  digitalWrite(s3, LOW);

  red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
  digitalWrite(s3, HIGH);

  blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
  digitalWrite(s2, HIGH);

  green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
  
}

Tham khảo thêm