写一个用tcs34725识别红黄蓝的代码
时间: 2024-06-08 18:06:22 浏览: 10
以下是一个使用 Arduino IDE 和 TCS34725 传感器来识别红,黄和蓝颜色的简单代码:
```
#include <Wire.h>
#include <Adafruit_TCS34725.h>
// 初始化传感器
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);
void setup() {
Serial.begin(9600);
// 开始传感器
if (tcs.begin()) {
Serial.println("Found TCS34725 sensor");
} else {
Serial.println("No TCS34725 sensor found");
while (1);
}
}
void loop() {
uint16_t r, g, b, c;
tcs.getRawData(&r, &g, &b, &c); // 获取颜色数据
// 计算颜色温度和亮度
uint32_t colorTemp = tcs.calculateColorTemperature(r, g, b);
uint16_t lux = tcs.calculateLux(r, g, b);
Serial.print("Color Temp: "); Serial.print(colorTemp, DEC); Serial.print(" K - ");
Serial.print("Lux: "); Serial.print(lux, DEC); Serial.print(" - ");
Serial.print("R: "); Serial.print(r, DEC); Serial.print(" ");
Serial.print("G: "); Serial.print(g, DEC); Serial.print(" ");
Serial.print("B: "); Serial.print(b, DEC); Serial.print(" ");
Serial.print("C: "); Serial.print(c, DEC); Serial.println(" ");
// 判断颜色
if (r > g && r > b) {
Serial.println("Color is RED");
} else if (g > r && g > b) {
Serial.println("Color is GREEN");
} else if (b > r && b > g) {
Serial.println("Color is BLUE");
} else if (r == g && g == b) {
Serial.println("Color is WHITE");
} else if (r > 200 && g > 200 && b < 100) {
Serial.println("Color is YELLOW");
} else {
Serial.println("Unrecognized color");
}
delay(1000); // 等待1秒
}
```
以上代码使用 TCS34725 传感器获取颜色数据,并根据颜色值判断颜色类型。如果颜色是红色,输出“Color is RED”;如果颜色是黄色,输出“Color is YELLOW”;如果颜色是蓝色,输出“Color is BLUE”。其他颜色则输出“Unrecognized color”。