一、器材
TCS230
arduino uno
二、接线
TCS230 | arduino uno |
GND | GND |
VCC | 5V |
S0 | D2 |
S1 | D3 |
S2 | D4 |
S3 | D5 |
OE/LED | D6 |
OUT | D7 |
三、程序
mixly程序
arduino程序
#define tcs230_S0 2
#define tcs230_S1 3
#define tcs230_S2 4
#define tcs230_S3 5
#define tcs230_sensorOut 7
#define tcs230_LED 6
//TCS230颜色传感器获取RGB值
int tcs230_Getcolor(char data)
{
int frequency = 0;
switch(data)
{
case 'R':
{
digitalWrite(tcs230_S2,LOW);
digitalWrite(tcs230_S3,LOW);
frequency = pulseIn(tcs230_sensorOut, LOW);
frequency = map(frequency, 25, 72, 255, 0);
break;
}
case 'G':
{
digitalWrite(tcs230_S2,HIGH);
digitalWrite(tcs230_S3,HIGH);
frequency = pulseIn(tcs230_sensorOut, LOW);
frequency = map(frequency, 30, 90, 255, 0);
break;
}
case 'B':
{
digitalWrite(tcs230_S2,LOW);
digitalWrite(tcs230_S3,HIGH);
frequency = pulseIn(tcs230_sensorOut, LOW);
frequency = map(frequency, 25, 70, 255, 0);
break;
}
default:
return -1;
}
if (frequency < 0)
frequency = 0;
if (frequency > 255)
frequency = 255;
return frequency;
}
void setup(){
pinMode(tcs230_S0, OUTPUT);
pinMode(tcs230_S1, OUTPUT);
pinMode(tcs230_S2, OUTPUT);
pinMode(tcs230_S3, OUTPUT);
pinMode(tcs230_LED, OUTPUT);
pinMode(tcs230_sensorOut, INPUT);
digitalWrite(tcs230_S0,HIGH);
digitalWrite(tcs230_S1,LOW);
digitalWrite(tcs230_LED,HIGH);
Serial.begin(9600);
}
void loop(){
if (tcs230_Getcolor('R')) {
Serial.println("RED");
}
if (tcs230_Getcolor('B')) {
Serial.println("BLUE");
}
if (tcs230_Getcolor('G')) {
Serial.println("GREEN");
}
}
四、效果
识别到红色打印RED,绿色打印GREEN,蓝牙打印BLUE
图中的效果是我测试蓝色的物体