Tổng số lượt xem trang

Thứ Hai, 14 tháng 3, 2016

GIỚI THIỆU VỀ CẢM BIẾN MÀU

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 
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:

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