2022年TCS颜色传感器使用说明资料 .pdf

上传人:C****o 文档编号:39718270 上传时间:2022-09-07 格式:PDF 页数:10 大小:1.17MB
返回 下载 相关 举报
2022年TCS颜色传感器使用说明资料 .pdf_第1页
第1页 / 共10页
2022年TCS颜色传感器使用说明资料 .pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《2022年TCS颜色传感器使用说明资料 .pdf》由会员分享,可在线阅读,更多相关《2022年TCS颜色传感器使用说明资料 .pdf(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 TCS3200 颜色传感器是一款全彩的颜色检测器,包括了一块TAOS TCS3200RGB感应芯片和 4 个白光 LED 灯,TCS3200 能在一定的范围内检测和测量几乎所有的可见光。它适合于色度计测量应用领域。比如彩色打印、医疗诊断、计算机彩色监视器校准以及油漆、纺织品、化妆品和印刷材料的过程控制。通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄 Y、绿 G、青 V、蓝 B、紫 P)。根据德国物理学家赫姆霍兹(Helin

2、holtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。由上面的三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS3200D 来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其它原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其它的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个光强值,就可以分析出反射到TCS3200D 传感器上的光的颜色。TCS3200D 传感器有红绿蓝和清除4 种滤光器,可以通过其引脚S2 和 S3的高低电平来选择

3、滤波器模式,如下图。TCS3200D 有可编程的彩色光到电信号频率的转换器,当被测物体反射光的红、绿、蓝三色光线分别透过相应滤波器到达TAOS TCS3200RGB感应芯片时,其内置的振荡器会输出方波,方波频率与所感应的光强成比例关系,光线越强,内置的振荡器方波频率越高。TCS3200传感器有一个 OUT 引脚,它输出信号的频率与内置振荡器的频率也成比例关系,它们的比率因子可以靠其引脚S0和 S1 的高低电平来选择,如下图。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 10 页 -这个测试实验,我把TCS3200 传感器 OUT引脚输出信号频率与其内置振荡器频率比率因子设为2%

4、,有了输出频率比例因子,但是如何通过OUT 引脚输出信号频率来换算出被测物体由三原色光强组成的RGB颜色值呢?这还需进行白平衡校正来得到 RGB比例因子才行!白平衡校正方法是:把一个白色物体放置在TCS3200 颜色传感器之下,两者相距 10mm 左右,点亮传感器上的4 个白光 LED灯,用 Arduino 控制器的定时器设置一固定时间 1s,然后选通三原色的滤波器,让被测物体反射光中红、绿、蓝三色光分别通过滤波器,计算1s 时间内三色光对应的TCS3200传感器 OUT 输出信号脉冲数(单位时间的脉冲数包含了输出信号的频率信息),再通过正比算式得到白色物体 RGB值 255 与三色光脉冲数的

5、比例因子。有了白平衡校正得到的RGB比例因子,则其它颜色物体反射光中红、绿、蓝三色光对应的TCS3200 输出信号 1s内脉冲数乘以 R、G、B 比例因子,就可换算出了被测物体的RGB标准值了。现在谈谈,如何进行TCS3200 各控制引脚与 Arduino 控制器的硬件连线问题,下图分别是 TCS3200 传感器和其连线图。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 10 页 -上图中 TCS3200 传感器各控制引脚与Arduino 控制器数字端口连线的对应关系,我设置为:#define S0 6#define S1 5#define S2 4#define S3 3#de

6、fine OUT 2#define LED 7当被测物体为不发光物体时,应该把TCS3200 的 LED引脚设置为高电平,以点亮 TCS3200 传感器电路板上的四个白光LED 灯。下文展示了一个带有白平衡的测试程序,把这个程序下载到Arduino 控制器中,同时把一个白色物体放置在TCS3200 颜色传感器之下,点亮传感器上的4 个白光 LED灯,再打开 Arduino IDE 的串口监视器,会出现下图监视画面,可以在该画面中找到白色物体RGB值 255 以及 RGB比例因子。(可通过QQ 截图来锁定画面,以便观察。)(双击图片,可以放大看!)名师资料总结-精品资料欢迎下载-名师精心整理-第

7、 3 页,共 10 页 -把白平衡时放置在TCS3200 颜色传感器之下白色物体拿走,放上另一个黄色物体,在 Arduino IDE 串口监视器看到的这个黄色物体RGB值为 233、157、56,如下图所示。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 10 页 -打开电脑 Windows 操作系统自带的画图板,点击菜单栏“颜色”-“编辑颜色”-“规定自定义颜色”-右下角输入 RGB值,查看对应的颜色与实际测试的颜色是否相符。实际测试结果是测得的物体颜色与实际颜色有些偏色,但并不影响区分出被测物体是哪种颜色的物体。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 1

8、0 页 -介绍完 TCS3200 传感器颜色识别原理和其与Arduino 控制器的硬件连线,以及如何利用串口监视器找到白平衡后的比例因子和被测物体的RGB值。下面展示的是 Arduino 测试程序。注意:下面的#include TimerOne.h 要改为单括号形式。Arduino程序:#include TimerOne.h/申明库文件/把 TCS3200颜色传感器各控制引脚连到Arduino数字端口#define S0 6 /物体表面的反射光越强,TCS3002D内置振荡器产生的方波频率越高,#define S1 5 /S0和 S1 的组合决定输出信号频率比例因子,比例因子为2%/比率因子为

9、TCS3200传感器 OUT 引脚输出信号频率与其内置振荡器频率之比#define S2 4 /S2和 S3 的组合决定让红、绿、蓝,哪种光线通过滤波器#define S3 3#define OUT 2 /TCS3200颜色传感器输出信号连接到Arduino中断 0 引脚,并引发脉冲信号中断 /在中断函数中记录TCS3200输出信号的脉冲个数#define LED 7 /控制 TCS3200颜色传感器是否点亮LED 灯float g_SF3;/从 TCS3200输出信号的脉冲数转换为RGB 标准值的RGB 比例因子int g_count=0;/计算与反射光强相对应TCS3200颜色传感器输出信

10、号的脉冲数/数组用于存储在1s 内 TCS3200输出信号的脉冲数,它乘以RGB 比例因子就是RGB 标准值int g_array3;int g_flag=0;/滤波器模式选择顺序标志/初始化 TSC3200各控制引脚的输入输出模式/设置 TCS3002D的内置振荡器方波频率与其输出信号频率的比例因子为2%void TSC_Init()pinMode(S0,OUTPUT);pinMode(S1,OUTPUT);pinMode(S2,OUTPUT);pinMode(S3,OUTPUT);pinMode(OUT,INPUT);pinMode(LED,OUTPUT);digitalWrite(S0,

11、LOW);digitalWrite(S1,HIGH);/选择滤波器模式,决定让红、绿、蓝,哪种光线通过滤波器void TSC_FilterColor(int Level01,int Level02)名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 10 页 -if(Level01!=0)Level01=HIGH;if(Level02!=0)Level02=HIGH;digitalWrite(S2,Level01);digitalWrite(S3,Level02);/中断函数,计算TCS3200输出信号的脉冲数void TSC_Count()g_count+;/定时器中断函数,每1s

12、 中断后,把该时间内的红、绿、蓝三种光线通过滤波器时,/TCS3200输出信号脉冲个数分别存储到数组g_array3的相应元素变量中void TSC_Callback()switch(g_flag)case 0:Serial.println(-WB Start);TSC_WB(LOW,LOW);/选择让红色光线通过滤波器的模式 break;case 1:Serial.print(-Frequency R=);Serial.println(g_count);/打印 1s 内的红光通过滤波器时,TCS3200输出的脉冲个数 g_array0=g_count;/存储 1s 内的红光通过滤波器时,TC

13、S3200输出的脉冲个数 TSC_WB(HIGH,HIGH);/选择让绿色光线通过滤波器的模式 break;case 2:Serial.print(-Frequency G=);Serial.println(g_count);/打印 1s 内的绿光通过滤波器时,TCS3200输出的脉冲个数名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 10 页 -g_array1=g_count;/存储 1s 内的绿光通过滤波器时,TCS3200输出的脉冲个数 TSC_WB(LOW,HIGH);/选择让蓝色光线通过滤波器的模式 break;case 3:Serial.print(-Frequen

14、cy B=);Serial.println(g_count);/打印 1s 内的蓝光通过滤波器时,TCS3200输出的脉冲个数 Serial.println(-WB End);g_array2=g_count;/存储 1s 内的蓝光通过滤波器时,TCS3200输出的脉冲个数 TSC_WB(HIGH,LOW);/选择无滤波器的模式 break;default:g_count=0;/计数值清零 break;/设置反射光中红、绿、蓝三色光分别通过滤波器时如何处理数据的标志/该函数被TSC_Callback()调用void TSC_WB(int Level0,int Level1)g_count=0;

15、/计数值清零 g_flag+;/输出信号计数标志 TSC_FilterColor(Level0,Level1);/滤波器模式 Timer1.setPeriod(1000000);/设置输出信号脉冲计数时长1s/初始化void setup()TSC_Init();Serial.begin(9600);/启动串行通信 Timer1.initialize();/defaulte is 1s Timer1.attachInterrupt(TSC_Callback);/设置定时器1 的中断,中断调用函数为TSC_Callback()/设置 TCS3200输出信号的上跳沿触发中断,中断调用函数为TSC_C

16、ount()attachInterrupt(0,TSC_Count,RISING);名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 10 页 -digitalWrite(LED,HIGH);/点亮 LED 灯 delay(4000);/延时 4s,以等待被测物体红、绿、蓝三色在1s 内的 TCS3200输出信号脉冲计数 /通过白平衡测试,计算得到白色物体RGB 值 255 与 1s 内三色光脉冲数的RGB 比例因子 g_SF0=255.0/g_array0;/红色光比例因子 g_SF1=255.0/g_array1;/绿色光比例因子 g_SF2=255.0/g_array2;/蓝

17、色光比例因子/打印白平衡后的红、绿、蓝三色的RGB 比例因子 Serial.println(g_SF0,5);Serial.println(g_SF1,5);Serial.println(g_SF2,5);/红、绿、蓝三色光分别对应的1s 内 TCS3200输出脉冲数乘以相应的比例因子就是RGB标准值 /打印被测物体的RGB 值 for(int i=0;i3;i+)Serial.println(int(g_arrayi*g_SFi);/主程序void loop()g_flag=0;/每获得一次被测物体RGB 颜色值需时4s delay(4000);/打印出被测物体RGB 颜色值 for(int

18、 i=0;i3;i+)Serial.println(int(g_arrayi*g_SFi);程序中的头文件 TimerOne.h 文件请下载:http:/ TCS3200 传感器与被测物体的检测距离以及周围环境光线没有发生大的变化,进行一次白平衡校正后,RGB比例因子就可以确定下来了。于是您一定要把得到的 RGB比例因子直接替代掉红色字体标识程序段中的数组g_array3 各元素变量。另外绿色字体标识的程序段也可以注释掉。在具体项目中,您所检测的是某种特定颜色的物体,可能就像文章的第一张图片展示的 5 个色块类似,绝不会有连续变化颜色的物体。于是,应该以上述程序获得的被测物体颜色R、G、B 值为中心,设置一个距离中心值 20 的范围值,在名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 10 页 -任何环境光条件下,再次检测被测物体的RGB值,只要 RGB值落在范围内,就可以认为被测物体是那种特定颜色的物体。这样设定颜色值范围的方法,可以有效提高物体颜色的识别率。名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 10 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com