Cảm biến màu sắc TCS3200 sử dụng IC TAOS TCS3200 RGB với 4 led trắng. Cảm biến màu TCS3200 có thể phát hiện và đo lường một phạm vi gần như vô hạn của màu sắc có thể nhìn thấy.
Cảm biến màu TCS3200 tích hợp 1 dãy bộ dò ánh sáng quang bên trong, với mỗi cảm biến ứng với các màu đỏ, xanh lá, xanh dương. Các bộ lọc của mỗi màu được phân bố đều khắp cảm biến để loại bỏ sai lệch vị trí giữa các màu sắc. bên trong cảm biến có bộ dao động tạo ra sóng vuông có tần số là tỷ lệ thuận với cường độ của màu sắc được lựa chọn.
Hướng dẫn sử dụng
Chức năng chân:
+ S0,S1 : Đầu vào chọn tỉ lệ tần số đầu ra .
+ S2,S3 : Đầu vào chọn kiểu photodiode.
+ OE : Đầu vào cho phép xuất tần số ở chân OUT.
+ OUT : Đầu ra là tần số thay đổi phụ thuộc cường độ và màu sắc.
+Linh kiện điện tử Module cảm biến màu TCS3200 với khả năng nhận biết 3 mầu cơ bản RGB và 4 đèn LED trắng. Các TCS3200 có thể phát hiện và đo lường gần như tất cả màu sắc có thể nhìn thấy. Ứng dụng bao gồm kiểm tra đọc dải, phân loại theo màu sắc, cảm biến ánh sáng xung quanh và hiệu chuẩn, và kết hợp màu sắc, đó chỉ là một vài ứng dụng. TCS3200 có các bộ tách sóng quang, có 2 bộ lọc màu sắc là bộ lọc màu đỏ, xanh dương, hoặc màu xanh lá, hoặc không có bộ lọc ( rõ ràng). Các bộ lọc của mỗi màu được phân bố đều khắp các mảng để loại bỏ sai lệch vị trí giữa các điểm màu. Bên trong là một bộ dao động tạo ra đầu ra sóng vuông có tần số là tỷ lệ thuận với cường độ của màu sắc lựa chọn.
Code mẫu:
int s0=3,s1=4,s2=5,s3=6;
int out=2;
int flag=0;
byte counter=0;
byte countR=0,countG=0,countB=0;
void setup()
{
Serial.begin(115200);
pinMode(s0,OUTPUT);
pinMode(s1,OUTPUT);
pinMode(s2,OUTPUT);
pinMode(s3,OUTPUT);
}
void TCS()
{
flag=0;
digitalWrite(s1,HIGH);
digitalWrite(s0,HIGH);
digitalWrite(s2,LOW);
digitalWrite(s3,LOW);
attachInterrupt(0, ISR_INTO, CHANGE);
timer0_init();
}
void ISR_INTO()
{
counter++;
}
void timer0_init(void)
{
TCCR2A=0x00;
TCCR2B=0x07; //the clock frequency source 1024 points
TCNT2= 100; //10 ms overflow again
TIMSK2 = 0x01; //allow interrupt
}
int i=0;
ISR(TIMER2_OVF_vect)//the timer 2, 10ms interrupt overflow again. Internal overflow interrupt executive function
{
TCNT2=100;
flag++;
if(flag==1)
{
countR=counter;
Serial.print("red=");
Serial.println(countR,DEC);
digitalWrite(s2,HIGH);
digitalWrite(s3,HIGH);
}
else if(flag==2)
{
countG=counter;
Serial.print("green=");
Serial.println(countG,DEC);
digitalWrite(s2,LOW);
digitalWrite(s3,HIGH);
}
else if(flag==3)
{
countB=counter;
Serial.print("blue=");
Serial.println(countB,DEC);
Serial.println("\n");
digitalWrite(s2,LOW);
digitalWrite(s3,LOW);
}
else if(flag==4)
{
flag=0;
}
counter=0;
}
void loop()
{
TCS();
while(1);
}
Các tin trước
Giao tiếp I2C và sử dụng module Realtime clock DS1307 (module RTC)
Hướng dẫn sử dụng Module cảm biến mức chất lỏng
Hướng dẫn sử dụng Module cảm biến nồng độ cồn MQ-3
Hướng dẫn sử dụng Module cảm biến siêu âm HY-SRF05
Sử dụng cảm biến khoảng cách HC-SR04
Giới thiệu Servo và cách điều khiển bằng biến trở
Hướng dẫn sử dụng cảm biến nhiệt độ - độ ẩm DHT11
Các tin tiếp theo
Power Integrations thay đổi logo
Thông báo về việc khuyến khích chuyển đổi từ hình thức mua hàng trực tiếp thành đặt hàng trước và qua lấy
Thông báo lịch nghỉ tết nguyên đán 2021
TI semiconductor thông báo thay đổi vật liệu làm chân IC
Thông báo chuyển địa điểm
Thông báo lịch nghỉ lễ 30/4 - 01/05 và điều chỉnh thời gian làm việc
hướng dẫn sử dụng arduino motor shield