HS-S63-P TCS342颜色传感器
- 介绍
- 原理图
- 模块参数
- 电路板尺寸
- 添加Arduino库文件
- 添加Micropython库文件
- ArduinoIDE 和Python语言示例程序
- 米思齐 Mixly 示例程序(图形化语言)
- Arduino测试环境搭建
- 视频教程
- 测试结论
1、介绍 点这里回到目录
TCS34725传感器模块,使用IIC或者UART通信,可直接输出RGB值。有功耗小,体积小,安装方便的优势。其工作原理是,通过照明LED发光,照射到被测物体后,返回光经过滤镜检测RGB的比例值,根据RGB的比例值识别出颜色。模块具有两种方式读取数据,即串口UART(TTL电平)或者IIC(2线),串口的波特率有9600bps与115200bps可配置,有连续、询问输出两种方式还能掉电保存设置。还可以进行简单的7种颜色识别,不需要计算RGB值。能适应不同的工作环境,与单片机及电脑连接。模块另外可以设置单独传感器芯片工作模式,作为简单传感器模块,MCU不参与数据处理工作。
2、原理图 点这里回到目录
3、模块参数 点这里回到目录
引脚名称 | 描述 |
---|---|
G | GND(电源输入负极) |
V | VCC(电源输入正极) |
SDA | 数据引脚 |
MISO | 时钟引脚 |
-
供电电压: 3.3V-5V
-
连接方式:PH2.0 4P端子线
-
安装方式:乐高搭建
4、电路板尺寸 点这里回到目录
5、添加Arduino库文件
不会使用库文件的参考这里:库文件安装使用
库文件下载:点击下载
米思齐库文件下载步骤(使用代码前前下载米思齐库文件):
第一步:找到库文件
点击设置,再点击管理库
第二步:找到对应的库并勾选上
第三步:点击导入
最后一步:检查是否添加成功,如果成功如下图所示,没有则检查以上步骤是否出错。
6、添加MicroPython环境库文件 点这里回到目录
不会安装库文件的请点击这里:参考链接
7、Arduino IDE示例程序 点这里回到目录
示例程序(UNO开发板):点击下载
#include <Wire.h> #include "Adafruit_TCS34725.h" Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X); void printColor() { uint16_t clearcol = 0; uint16_t red = 0; uint16_t green = 0; uint16_t blue = 0; float r = 0; float g = 0; float b = 0; float average = 0; delay(100); tcs.getRawData(&red, &green, &blue, &clearcol); //加权平均值算法 average = (red + (green + blue)) / 3; r = red / average; g = green / average; b = blue / average; Serial.println(String("r ") + String(r) + String(" g ") + String(g) + String(" b ") + String(b)); if ((r > 1.2 && r < 1.9) && (g < 1 && (b > 0.45 && b < 0.9))) { Serial.print(" 红"); } else if (r < 1.1 && (g > 1.3 && b < 0.7)) { Serial.print(" 绿"); } else if ((r > 1 && r < 1.5) && ((g > 1.1 && g < 1.4) && (b > 0.35 && b < 0.75))) { Serial.print(" 黄"); } else if ((r > 0.7 && r < 1) && (g < 1.2 && b > 1)) { Serial.print(" 蓝"); } else if (false) { } else { Serial.print(" 不是匹配的颜色"); } delay(10); } void setup(){ Serial.begin(9600); if (tcs.begin(0x29)) { Serial.println("搜索到TCS34725"); } else { Serial.println("没有搜索到TCS34725"); while (true) { delay(1); } } } void loop(){ printColor(); }
示例程序(ESP32开发板):
import machine import time from machine import Pin,I2C from tcs34725 import TCS34725 import time # 创建I2C对象 i2cObj = I2C(1,scl = Pin(22),sda = Pin(21),freq = 400000) # 打印扫描出的I2C对象 print("I2C Bus Scan: ", i2cObj .scan(), "\n") # 创建tcs34725颜色识别模块对象 tcs = TCS34725(i2cObj ,0x29) # 创建RGB颜色计算函数 def Colour(): try: red,green,blue,colour = tcs.read(True) # 读取颜色值 if colour != 0: # 如果colour不等于0 Red = int((red / colour) * 32) # 计算红色的值 Green = int((green / colour) * 32) # 计算绿色的值 Blue = int((blue / colour) * 32) # 计算蓝色的值 return Red,Green,Blue else: return 0,0,0 except : print("数据异常!") RuntimeError RGB = [0, 0, 0] while True: print('(r,g,b)对应是',end ="") # 获取颜色R,G,B函数 print(Colour()) time.sleep_ms(10)
8、米思齐 Mixly 示例程序(图形化语言) 点这里回到目录
示例程序(UNO开发板):点击下载
示例程序(ESP32开发板):点击下载
9、测试环境搭建 点这里回到目录
Arduino UNO 测试环境搭建
准备配件:
- UNO-R3 开发板 *1
- UNO-R3 EXP 扩展板 *1
- USB type-c 数据线 *1
- TCS3472颜色传感器*1
- PH2.0 4P双头端子线 *1
电路接线图:
ESP32 Python 测试环境搭建
10、视频教程 点这里回到目录
Arduino UNO视频教程:点击查看
ESP32 Python视频教程:
11、测试结论 点这里回到目录
Arduino UNO测试结论:
下入代码,之后将模块对准颜色板。
对准不同的颜色,可以观察到电脑串口打印不同的r,g,b值。