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ử dụng)
(Sử dụng)
 
Dòng 36: Dòng 36:
  
 
Sơ đồ kết nối
 
Sơ đồ kết nối
[[Hình:ms07.png|500px|phải]]
+
[[Hình:ms07.png|500px]]
 
 
  
 
Source code mẫu:
 
Source code mẫu:
  
{| style="border-radius: 6px 6px 6px 6px;border: 1px dotted"
+
<syntaxhighlight lang="cpp">
|<syntaxhighlight lang="cpp">
 
  
 
const int s0 =8;
 
const int s0 =8;
Dòng 128: Dòng 126:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
|}
 
  
 
== Tham khảo thêm ==
 
== Tham khảo thêm ==

Bản hiện tại lúc 11:56, ngày 2 tháng 3 năm 2018

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.
Ms06.jpg

Đặ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 Ms07.png

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