CẢM BIẾN MÀU TCS3200
THÔNG SỐ KỸ THUẬT:
Hôm nay chúng ta sẽ thực hiện xây dựng một mạch cảm biến màu sắc với một vi điều khiển Arduino.
Cảm biến này có 10 chân các chân của mạch nay được tóm tắt theo
bảng dưới đây:
TCS3200 Màu Sensor
|
|
pins
|
Chức năng
|
Ngõ Vào
|
Điện áp ngõ vào .
|
Ngõ Ra
|
Điện áp ngõ ra
|
S0
|
Với S1, những quyết định nhân rộng của tần số đầu ra.
|
S1
|
Với S0, những quyết định nhân rộng của tần số đầu ra.
|
S2
|
Với S3, các chân này xác định màu sắc cảm nhận bởi các cảm biến.
|
S3
|
Với S2, các chân này xác định màu sắc cảm nhận bởi các cảm biến.
|
OE Pin
|
Các pin ra cho tần số đầu ra (các màu sắc cảm nhận)
|
LED
|
Nếu kết nối với 5V hoặc một pin kỹ thuật số, các đèn LED trên bảng chip
sẽ sáng lên.
|
Cảm biến màu sắc TCS3200 có thể phân biệt được
nhiều màu khác nhau, nó có thể
phát hiện và phân biệt giữa các màu trắng, xanh dương, xanh lá cây, và màu đỏ.
Chuyển đổi từ cường độ ánh sáng sang tần
số với độ phân giải cao
Có khả năng lập trình để nhận biết đầy đủ các màu sắc
Có khả năng lập trình để nhận biết đầy đủ các màu sắc
NGUYÊN TẮC HOẠT ĐỘNG:
Cảm biến TCS3200 có bộ lọc màu,nó chỉ cho phép nhận biết một
màu và các màu khác sẽ bị chặn lại
vd: khi lựa chọn các bộ lọc màu đỏ, Chỉ có ánh sáng tới màu đỏ có
thể được thông qua, màu xanh và màu xanh lá cây sẽ được ngăn chặn,nên chúng
ta nhận được ánh sáng đỏ,và tương tự các màu khác cũng vậy
Cảm biến khi có ánh sáng và chuyển đổi nó thành tần số nhất định. sau
đó tần số này được đưa vào một bộ chuyển đổi tần số
Tần số được tạo ra, tương ứng với màu sắc
của ánh sáng, tạo ra một tần số nhất định. tần số đầu ra này sau đó sẽ
quyết định màu sắc đã cảm nhận được. Vì vậy, về cơ bản là ánh sáng đã được
chuyển đổi thành một tần số. Mỗi màu sắc có tần số riêng của nó. Vì
vậy, đây là cách cảm biến này có thể phân biệt giữa các màu sắc.
Dưới đây la chức năng làm việc của các
chân từ S0-S3.
Yếu tố quan trọng nhất là 2 chân là S2 và
S3. Chính là những xác định màu sắc đã được cảm nhận. Vì đây là 2
chân (S2 và S3) và có thể cao hoặc thấp, có tổng cộng 4 kết hợp có thể.
Bảng dưới đây cho thấy các kết hợp và kết quả đầu ra
S2
|
S3
|
Loại photodiode
|
L
|
L
|
đỏ
|
L
|
H
|
Màu xanh da trời
|
H
|
L
|
Clear (không có bộ lọc)
|
H
|
H
|
màu xanh lá
|
Làm thế nào cảm biến nhận biết khi có bộ
lọc màu. Khi bạn chọn một bộ lọc màu sắc, nó chỉ có thể cho phép nhận biết
một màu sắc đặc biệt để có được thông qua và ngăn chặn những màu sắc khác đi
qua. Lựa chọn các loại mau12v khác
nhau của các tổ hợp do S2 và S3 chọn lọc nhất định. Vì vậy, nếu bạn chọn
S1 như thấp và S2 là thấp
VD:
điều này làm cho một bộ lọc màu đỏ, nơi mà chỉ có màu đỏ có thể đi qua. Vì
vậy, nếu màu sắc đi qua, sau đó các cảm biến đều biết rằng màu đỏ có trong vùng
được phát hiện. Vì vậy, nếu không có màu đỏ đi qua thì trường hợp này bộ
lọc được áp dụng,và đó có nghĩa là các màu sắc không phải màu đỏ. Và đây
là cách nó hoạt động cho tất cả các màu sắc khác.
S0 và S1 là ít quan trọng hơn. Nhưng nó
có thể hữu ích cho nhiều mục đích sử dụng trong nhiều trường hợp khác
Điều này được tóm tắt trong bảng dưới đây.
S0
|
S1
|
Mở rộng quy mô sản
lượng tần số (f0)
|
L
|
L
|
Power xuống
|
L
|
H
|
2%
|
H
|
L
|
20%
|
H
|
H
|
100%
|
Nguồn nạp xuống cảm biến là một phương
pháp tiết kiệm điện. Nó chứa các đầu ra ở trạng thái khá cao. Nó
tương tự như đầu ra cho pin.Nhưng nguồn nạp xuống cảm biến với pin này giúp
tiết kiệm năng lượng nhiều hơn so với việc vô hiệu hóa các cảm biến với sản
lượng cho phép sử dụng. Vì vậy, nó rất hiệu quả. Để làm điều này, bạn
sẽ chỉ làm cho S0 và S1 cả thấp.
Các kết hợp khác để thay đổi tỉ lệ của các
chân được thực hiện bằng cách kết nối các tín hiệu đầu ra của bộ chuyển đổi cho
một loạt các tần số nhỏ. Tất cả các kết quả đầu ra nhỏ có một chu kỳ nhiệm
vụ 50% nhưng chúng ta có thể thay đổi tần số của các tín hiệu bằng nhiều cách
hoặc là 100%, 20%, và 2%.
ỨNG DỤNG
Một cảm biến màu sắc là một thiết bị rất
hữu ích. Hiện nay các xe tự động đang được phát triển, có thể chạy tự động,
xe hơi không người lái, và cảm biến là một cách để có thể phát hiện màu sắc ở
những nơi như dấu hiệu dừng lại màu đỏ và đèn giao thông, màu xanh lá cây để đi
và đỏ dừng lại.
Một thiết bị cảm biến màu sắc có thể được
tích hợp vào là robot. Càng nhiều khả năng mà một robot có,và thông minh
hơn. Nếu một robot có thể phân biệt màu sắc, nó có nhiều khả năng. Hãy
tưởng tượng nếu bạn có một robot có thể nói sự khác biệt giữa một chiếc khăn
màu xanh lá cây và một chiếc khăn màu đỏ. Nếu bạn biết bạn có một chiếc
khăn màu xanh lá cây và một người khác có một chiếc khăn màu đỏ, các robot có
thể sắp xếp nó một cách thích hợp
Các ứng dụng khác bao gồm đọc truyện, cảm
biến ánh sáng xung quanh và hiệu chuẩn, và màu sắc phù hợp.
Vì vậy cảm biến màu sắc sẽ được ứng dụng
nhiều trong tương lai
HƯỚNG DẪN SỬ DỤNG (Màu Sensor TCS3200)
1 Linh
kiện:
üArduino uno R3
üCảm biến màu
ü Dây cắm
2 Cách đấu dây:
V CC kết
nối với 5V( trên Arduino )
GND kết nối với GND (trên Arduino)
Điều
này thiết lập TCS3200.
S0 và S1 đi đến chân 8 và 9
S2 và S3 đi vào chân 12 và 11(Các chân này
quyết định màu cảm biến cảm.)
Ngõ ra vào chân 10 pin này có chứa các tần
số đầu ra của các màu sắc cảm nhận.
Các pin LED đi vào chân 13.
Chân này có thể bật đèn LED trên bảng con
chip TCS3200 nếu pin kỹ thuật số được bật CAO.
3 Mã code lập trình//Connections to the Arduino Microcontroller
int S0 = 8;
int S1 = 9;
int S2 = 12;
int S3 = 11;
int taosOutPin = 10;
int LED = 13;
void setup() {
TCS3200setup();
Serial.begin(115200);
delay(100);
}
void loop() {
detectColor(taosOutPin);
Serial.print("\n\n\n");
delay(1000);
}
int detectColor(int taosOutPin){
float white = colorRead(taosOutPin,0,1);
float red = colorRead(taosOutPin,1,1);
float blue = colorRead(taosOutPin,2,1);
float green = colorRead(taosOutPin,3,1);
Serial.print("white ");
Serial.println(white);
Serial.print("red ");
Serial.println(red);
Serial.print("blue ");
Serial.println(blue);
Serial.print("green ");
Serial.println(green);
}
/* This section will return the pulseIn reading of the selected color. It will turn on the sensor at the start taosMode(1), and it will power off the sensor at the end taosMode(0) color codes: 0=white, 1=red, 2=blue, 3=green if LEDstate is 0, LED will be off. 1 and the LED will be on. taosOutPin is the ouput pin of the TCS3200. */
float colorRead(int taosOutPin, int color, boolean LEDstate){
//turn on sensor and use highest frequency/sensitivity setting
taosMode(1);
//setting for a delay to let the sensor sit for a moment before taking a reading
int sensorDelay = 100;
//set the S2 and S3 pins to select the color to be sensed
if(color == 0){ //white
digitalWrite(S3, HIGH);
digitalWrite(S2, HIGH);
// Serial.print(" White");
}
else if(color == 1){
digitalWrite(S3, HIGH);
digitalWrite(S2, HIGH);
// Serial.print(" Red");
}
else if(color == 2){
digitalWrite(S3, LOW);//blue
digitalWrite(S2, LOW);
// Serial.print(" Blue");
}
else if(color == 3){//green
digitalWrite(S3, HIGH);
digitalWrite(S2, HIGH);
// Serial.print(" Green");
}
// create a var where the pulse reading from sensor will go
float readPulse;
// turn LEDs on or off, as directed by the LEDstate var
if(LEDstate == 0){
digitalWrite(LED, LOW);
}
if(LEDstate == 1){
digitalWrite(LED, HIGH);
}
// wait a bit for LEDs to actually turn on, as directed by sensorDelay var
delay(sensorDelay);
// now take a measurement from the sensor, timing a low pulse on the sensor's "out" pin
readPulse = pulseIn(taosOutPin, LOW, 80000);
//if the pulseIn times out, it returns 0 and that throws off numbers. just cap it at 80k if it happens
if(readPulse < .1){
readPulse = 80000;
}
//turn off color sensor and LEDs to save power
taosMode(0);
// return the pulse value back to whatever called for it...
return readPulse;
}
// Operation modes area, controlled by hi/lo settings on S0 and S1 pins
//setting mode to zero will put taos into low power mode
void taosMode(int mode){
//power OFF mode- LED off and both channels LOW
if(mode == 0){
digitalWrite(LED, LOW);
digitalWrite(S0, LOW);
digitalWrite(S1, LOW);
// Serial.println("LED off, both channels low");
//this will put in 1:1, highest sensitivity
}else if(mode == 1){
digitalWrite(S0, HIGH);
digitalWrite(S1, HIGH);
// Serial.println("Frequency Scaled at 100%");
//this will scale down the frequency down 20%
}else if(mode == 2){
digitalWrite(S0, HIGH);
digitalWrite(S1, LOW);
//Serial.println("Frequency Scaled Down to 20%");
//this will scale down the frequency down to 2%
}else if(mode == 3){
digitalWrite(S0, LOW);
digitalWrite(S1, HIGH);
//Serial.println("Frequency Scaled Down to 2%");
}
return;
}
void TCS3200setup(){
pinMode(LED,OUTPUT);
//color mode selection
pinMode(S2,OUTPUT);
pinMode(S3,OUTPUT);
//color response pin (only actual input from taos)
pinMode(taosOutPin, INPUT);
//communication freq (sensitivity) selection
pinMode(S0,OUTPUT);
pinMode(S1,OUTPUT);
return;
}
VIDEO SỬ
DỤNG CẢM BIẾN
0 nhận xét:
Đăng nhận xét