匿名
未登录
登录
丢石头百科
搜索
查看“TCS34725 Color Sensor”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
TCS34725 Color Sensor
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
<div class="tabber"> {{外围模块|colorscheme=blue |img=[[File:TCS34725-Color-Sensor-intro.jpg|360px |alt=TCS34725 Color Sensor |link=http://{{SERVERNAME}}/shop/TCS34725-Color-Sensor.htm]] |category1=传感器 |category2=光传感器 |brand=Waveshare |feature = 颜色传感器、光传感器 | interface1 =I2C }} <div class="tabbertab" title="说明"> ==产品概述== 本模块是ams AG 的 TCS34725FN彩色光数字转换器为核心的颜色传感器,传感器提供红色,绿色,蓝色(RGB)和清晰光感应值的数字输出。集成红外阻挡滤光片可最大限度地减少入射光的红外光谱成分,并可精确地进行颜色测量。具有高灵敏度,宽动态范围和红外阻隔滤波器。最小化IR和UV光谱分量效应,以产生准确的颜色测量。并且带有环境光强检测和可屏蔽中断。通过I2C接口通信。 <br /> ==产品参数== *工作电压:3.3V/5V *控制芯片:TCS34725FN *逻辑电压:3.3V/5V *通信接口:I2C *产品尺寸:27X20(mm) ==接口说明== {|border=2; style="width:700px;" |-style="background:#abc; color:black;" align="center" |功能引脚||描述 |-align="center" |VCC||3.3V/5V电源正 |-align="center" |GND||电源地 |-align="center" |SDA||I2C数据输入 |-align="center" |SCL||I2C时钟输入 |-align="center" |INT||中断输出(开漏输出) |-align="center" |LED||发光二极管 |} ==硬件说明== ===芯片=== 本产品采用TCS34725为核心,是一款基于IIC总线通信的彩色光数字转换器。传感器提供红色,绿色,蓝色(RGB)和清晰光感应值的数字输出,带有集成红外阻隔滤波器。具有高灵敏度,宽动态范围。可在不同的光照条件下都可以实现准确的色彩和环境光线感应,带有可屏蔽中断。<br /> ===通信协议=== 从上的得知使用的是I2C通信,I2C 通信,一条数据线,一条时钟线。 I2C 总线在传送数据过程中共有三种类型信号:开始信号、结束信号和应答信号。<br /> [[File:TCS34725-Color-Sensor- (1).png|800px]]<br /> 开始信号:SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。<br /> 结束信号:SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。<br /> 应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。<br /> ===='''I2C写时序'''==== [[File:TCS34725-Color-Sensor- (2).png|800px]]<br /> 首先主机(即树莓派,后面统称为主机)会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机(即 TSL2581 传感器模块,后面统称为从机),从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机发送命令寄存的值,从机回应一个响应信号,直到主机发送一个停止信号,此次 I2C 写数据操作结束。<br /> ===='''I2C读时序'''==== [[File:TCS34725-Color-Sensor- (3).png|800px]]<br /> 首先主机会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机,从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机重新发送一个开始信号,并且将其 7 位地址和读操作位组合成 8 位的数据发送给从机,从机接收到信号后发送响应信号,再将其寄存器中的值发送给主机,主机端给予响应信号,直到主机端发送停止信号,此次通信结束。 ===='''I2C地址'''==== TCS34725的I2C设备地址为0X29<br /> {|class=imgtable |[[File:TCS34725-Color-Sensor- (4).png|800px]]<br /> TCS34725数据手册第34页<br /> |} 注意:0X29这个设备地址是7位的,8位设备地址需要向高位移一位变成0X52<br /> ==使用说明== ===下载例程=== 在官网上找到对应产品,在产品资料打开下载路径,在wiki中下载示例程序:<br /> [[File:TCS34725-Color-Sensor- (5).png|800px]]<br /> 得到解压包并解压,得到如下文件:<br /> [[File:TCS34725-Color-Sensor- (6).png|800px]]<br /> 例程:树莓派 BCM2835、WiringPi、python例程、STM32例程、Arduino例程。<br /> ===树莓派使用=== [[File:TCS34725-Color-Sensor- (7).png|800px]]<br /> 将解压文件中RaspberryPi文件夹复制到boot根目录下<br /> [[File:TCS34725-Color-Sensor- (8).png|800px]]<br /> 然后弹出U盘,将SD卡插入树莓派中,插上USB上电,查看/boot目录的文件:<br /> ls /boot [[File:TCS34725-Color-Sensor- (9).png|800px]]<br /> 执行如下命令将其复制到用户目录下,并修改其用户权限:<br /> sudo cp -r /boot/RaspberryPi/ ./ [[File:TCS34725-Color-Sensor- (10).png|800px]]<br /> sudo chmod 777 -R RaspberryPi/ 进入目录,查看文件:<br /> [[File:TCS34725-Color-Sensor- (11).png|800px]]<br /> ===='''安装库函数'''==== 运行程序前需要安装对应的函数库(wiringpi, bcm2835, python),否则程序无法正常使用。<br /> *安装BCM2835库:<br /> http://www.airspayce.com/mikem/bcm2835/<br /> 进入BCM2835的官网下载并把安装包复制到树莓派上,运行如下:<br /> sudo tar zxvf bcm2835-1.xx.tar.gz cd bcm2835-1.xx sudo ./configure make sudo make check sudo make install 其中xx代表的是下载的版本号,例如我下载的bcm2835-1.52<br /> 那么就应该执行:sudo tar zxvf bcm2835-1.52.tar.gz<br /> *安装wiringPi库:<br /> sudo apt-get install git sudo git clone git://git.drogon.net/wiringPi cd wiringPi sudo ./build *安装python库 sudo apt-get install python-pip sudo pip install RPi.GPIO sudo pip install spidev sudo apt-get install python-imaging sudo apt-get install python-smbus *打开树莓派I2C接口 sudo raspi-config [[File:TCS34725-Color-Sensor- (12).png|800px]]<br /> <br /> [[File:TCS34725-Color-Sensor- (13).png|800px]]<br /> 打开I2C功能后重启树莓派 sudo reboot<br /> 运行 i2cdetect -y 1<br /> <font color=red>最后面的是数字1不是字母l</font>,运行后可以看到当前已经正确连接的I2C设备。<br /> [[File:TCS34725-Color-Sensor- (14).png|800px]]<br /> ===='''硬件连接'''==== [[File:TCS34725-Color-Sensor- (15).png|800px]]<br /> 具体连接如下表所示:<br /> {|border=2; style="width:700px;" |-style="background:#afa; color:black;" align="center" |TCS34725 Color Sensor ||树莓派 |-align="center" |VCC||style="width:350px"|3.3V |- align="center" |GND||GND |- align="center" |SDA||SDA |- align="center" |SCL||SCL |- align="center" |INT||17 |- align="center" |LED||18 |} ===='''运行程序'''==== *BCM2835例程 cd bcm2835 sudo ./main *wiringPi例程 cd wiringpi sudo ./main *python例程 cd python sudo python main.py 注:BCM2835、wiringpi程序运行如果提示找不到文件,执行make即可<br /> ===='''预期效果'''==== 执行BCM2835、wiringpi或者python程序得到的效果类似,下面是python测试红色运行结果:<br /> 其中R、G、B是RGB888格式以十进制分开输出,C是没有做任何处理的环境光强数值,RGB565、RGB888分别是对应格式的十六进制输出,LUX是已经处理过的环境光强数字,CT是色温。(http://www.360doc.com/content/17/0629/07/44859260_667365022.shtml),用户如果想测量色温偏差小,建议关闭LED灯。INT是中断,1标识光强超过设定值。<br /> [[File:TCS34725-Color-Sensor- (16).png|800px]]<br /> <br /> 将数值转换成颜色,可以通过下面连接的工具实现:<br /> https://www.sioe.cn/yingyong/yanse-rgb-16/ <br /> 或者直接下载:http://{{SERVERNAME}}/w/upload/0/05/Hexacolor3.7z <br /> [[File:TCS34725-Color-Sensor- (17).png|400px]][[File:TCS34725-Color-Sensor- (18).png|00px]]<br /> ===STM32=== 下载例程解压,使用Keil uVision5打开。例程使用的是HAL库。测试使用的开发板为微雪XNUCLEO-F103RB,芯片为STM32F103RBT6。例程使用串口2(PA2,PA3)输出数据。串口波特率为115200,其他默认:数据位8位,停止位1位,没有校验。 ===='''硬件连接'''==== 连接如下表所示<br /> {|border=2; style="width:700px;" |-style="background:#aaf; color:black;" align="center" |TCS34725 Color Sensor||style="width:350px"|STM32 |-align="center" |VCC||3.3V |- align="center" |GND||GND |- align="center" |SDA||SDA/D14/PB9 |- align="center" |SCL||SCL/D15/PB8 |- align="center" |INT||D8/PA9 |- align="center" |LED||PWM1/D9/PC7 |} ===='''预期效果'''==== 下图为测试红色输出数据<br /> [[File:TCS34725-Color-Sensor- (19).png|800px]]<br /> 将数值转换成颜色,可以通过下面连接的工具实现:<br /> https://www.sioe.cn/yingyong/yanse-rgb-16/ <br /> 或者直接下载:http://{{SERVERNAME}}/w/upload/0/05/Hexacolor3.7z <br /> [[File:TCS34725-Color-Sensor- (17).png|400px]][[File:TCS34725-Color-Sensor- (18).png|400px]]<br /> ==Arduino== 下载例程解压,测试使用的是ARDUION UNO开发板,波特率为115200<br /> ===='''硬件连接'''==== {|border=2; style="width:700px;" |-style="background:#fea; color:black;" align="center" |TCS34725 Color Sensor||Arduino |-align="center" |VCC||3.3V/5V |-align="center" |GND||GND |-align="center" |SDA||SDA |-align="center" |SCL||SCL |-align="center" |INT||D8 |-align="center" |LED||D9 |} ===='''预期效果'''==== 下图为测试红色输出数据<br /> [[File:TCS34725-Color-Sensor- (20).png|800px]]<br /> <br /> 将数值转换成颜色,可以通过下面连接的工具实现:<br /> https://www.sioe.cn/yingyong/yanse-rgb-16/ <br /> 或者直接下载:http://{{SERVERNAME}}/w/upload/0/05/Hexacolor3.7z<br /> [[File:TCS34725-Color-Sensor- (17).png|400px]][[File:TCS34725-Color-Sensor- (18).png|400px]]<br /> </div> <div class="tabbertab" title="资料"> ===文档=== *[http://{{SERVERNAME}}/w/upload/3/3c/TCS34725_Color_Sensro_user_manual_cn.pdf 用户手册] <br> *[http://{{SERVERNAME}}/w/upload/5/5c/TCS34725_Color_Sensor_SchDoc.pdf 原理图]<br> ===程序=== *[http://{{SERVERNAME}}/w/upload/a/a1/TCS34725_Color_Sensor_code.7z 示例程序]<br> ===软件=== *[http://{{SERVERNAME}}/w/upload/5/5f/Sscom.7z 串口调试助手] ===数据手册=== *[http://{{SERVERNAME}}/w/upload/e/e4/TCS3472_Datasheet.pdf TCS3472] 转到:[[#软件]],[[#程序]],[[#文档]] <!--{{Join_us}}--> </div> <div class="tabbertab" title="FAQ"><br /> {{FAQ |例程输出数据全部为0或者初始化失败?如图:<br /> [[File:questuion3.png|900px]] | 请检查管脚连接是否正确。|||}} {{FAQ|树莓派例程初始化失败?| 对于BCM2835和wiringPi例程出现这样的提示<br /> [[File:TCS34725-Color-Sensor- (21).png|400px]]<br /> Python例程<br /> [[File:TCS34725-Color-Sensor- (22).png|400px]]<br /> 如果出现以上问题这是设备数据I2C数据传输错误。大多数是硬件连接错误,请检查硬件连接是否正确,检查硬件连接是否有问题,运行i2cdetect -y 1 如果有显示IIC地址就表示硬件连接无问题。<br /> [[File:TCS34725-Color-Sensor- (23).png|400px]]<br /> 如果硬件连接正确那么是不正确的使用树莓派控制可能会导致(详情看下面),重启树莓派即可。<br /> |||}} {{FAQ|不正确的使用树莓派控制可能会导致?| 如果运行wiringPi例程正常,再运行python或者BCM2835可能会屏幕无法正常刷新,因为bcm2835库是树莓派cpu芯片的库函数,底层是直接操作寄存器,而wiringPi库和python的底层都是通过读写linux系统的设备文件操作设备,可能导致GPIO口异常,重启树莓派可完美解决。|||}} {{FAQ|STM32和Arduino例程串口输出没有数据或者数据输出乱码?| 确认波特率是否设置为115200,对于STM32例程请确认电脑正确连接开发板USART2(PA2,PA3),PA2为TXD,并且选择正确的COM端口。控制面板->硬件->设备管理器。 [[File:TCS34725-Color-Sensor- (24).png|400px]] |||}} {{FAQ|STM32和Arduino例程串口输出RGB数据全部为0或者初始化失败?如图 [[File:TCS34725-Color-Sensor- (25).png|400px]][[File:TCS34725-Color-Sensor- (26).png|400px]]| 请确认器件连接没有问题,如果没问题请按下复位按键。|||}} {{FAQ|输出的RGB数据全为253并且中断引脚产生中断等等如图<br /> [[File:TCS34725-Color-Sensor- (27).png|600px]]| 这种情况是光强超出检查范围,减小增益可以完美解决(在初始里面修改,或者在初始化后面重新写入一个增益设置TCS34725_Set_Gain(TCS34725_GAIN_16X)) |||}} {{FAQ|修改积分时间后导致颜色不正常?| 因为积分时间决定了RGBC通道数据最大值,修改积分时间会导致颜色偏暗或者偏白。只需要增加或减少LED亮度即可。 |||}} {{FAQ|修改积分时间无法触发中断或者一直重复中断?| 中断是和Clear通道里面的数据进行比较,Clear通道里面的数据和积分时间有关系,经过实际测量在增益为60倍情况下 [[File:TCS34725-Color-Sensor- (28).png|600px]]<br /> 所以用户如果需要速度比较快的采集数据时,要注意重新设置中断数值。另外在积分时间为2.4ms时RGB数据比较低所以转换出来的颜色与实际颜色有偏差,需要加大LED灯亮度即可。 |||}} </div> <div class="tabbertab" title="售后"><br />{{Service11}}</div>
该页面使用的模板:
模板:FAQ
(
查看源代码
)
模板:Service00
(
查看源代码
)
模板:Service11
(
查看源代码
)
模板:Tipbox
(
查看源代码
)
模板:外围模块
(
查看源代码
)
返回至
TCS34725 Color Sensor
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志