Khác biệt giữa các bản “Cảm biến màu sắc TCS3200”
Từ ChipFC Wiki
(→Sơ đồ chân) |
(→Sử dụng) |
||
(Không hiển thị 8 phiên bản của một người dùng khác ở giữa) | |||
Dòng 5: | Dòng 5: | ||
* 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ả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. | ||
+ | |||
+ | [[Hình:Ms06.jpg|400px|phải]] | ||
== Đặc điểm == | == Đặc điểm == | ||
Dòng 34: | Dòng 36: | ||
Sơ đồ kết nối | Sơ đồ kết nối | ||
+ | [[Hình:ms07.png|500px]] | ||
Source code mẫu: | Source code mẫu: | ||
− | + | <syntaxhighlight lang="cpp"> | |
− | |||
const int s0 =8; | const int s0 =8; | ||
Dòng 45: | Dòng 47: | ||
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 62: | ||
pinMode(s3,OUTPUT); | pinMode(s3,OUTPUT); | ||
pinMode(out, INPUT); | pinMode(out, INPUT); | ||
− | + | // pinMode(redLed,OUTPUT); | |
− | + | // pinMode(greenLed,OUTPUT); | |
− | + | // pinMode(blueLed,OUTPUT); | |
digitalWrite(s0,HIGH); | digitalWrite(s0,HIGH); | ||
digitalWrite(s1,HIGH); | digitalWrite(s1,HIGH); | ||
Dòng 69: | Dòng 71: | ||
void loop() { | void loop() { | ||
color(); | color(); | ||
− | Serial.print(" | + | Serial.print("Y cuong do: "); |
Serial.print(red,DEC); | Serial.print(red,DEC); | ||
− | Serial.print("G | + | Serial.print("G cuong do: "); |
Serial.print(green,DEC); | Serial.print(green,DEC); | ||
− | Serial.print("B | + | 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(greenLed, LOW); | |
− | + | // digitalWrite(blueLed,LOW); | |
delay(1000); | delay(1000); | ||
} | } | ||
Dòng 89: | Dòng 90: | ||
{ | { | ||
Serial.println("-blue color"); | Serial.println("-blue color"); | ||
− | + | // digitalWrite(redLed, LOW); | |
− | + | // digitalWrite(greenLed, LOW); | |
− | + | // 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(greenLed, HIGH); | |
− | + | // digitalWrite(blueLed,LOW); | |
} | } | ||
else{ | else{ | ||
Dòng 106: | Dòng 107: | ||
} | } | ||
delay(500); | delay(500); | ||
− | + | // digitalWrite(redLed, LOW); | |
− | + | // digitalWrite(greenLed, LOW); | |
− | + | // digitalWrite(blueLed,LOW); | |
} | } | ||
void color() | void color() | ||
Dòng 124: | Dòng 125: | ||
} | } | ||
− | |||
</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
Bài viết này đang được phát triển hoặc chỉnh sửa lớn. |
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
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);
}