1 / 14
文档名称:

TCS3200颜色传感器使用说明.doc

格式:doc   大小:2,474KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

TCS3200颜色传感器使用说明.doc

上传人:幸福人生 2024/5/10 文件大小:2.42 MB

下载得到文件列表

TCS3200颜色传感器使用说明.doc

相关文档

文档介绍

文档介绍:该【TCS3200颜色传感器使用说明 】是由【幸福人生】上传分享,文档一共【14】页,该文档可以免费在线阅读,需要了解更多关于【TCS3200颜色传感器使用说明 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。TCS3200颜色传感器使用说明??TCS3200颜色传感器是一款全彩的颜色检测器,包括了一块TAOSTCS3200RGB感应芯片和4个白光LED灯,TCS3200能在一定的范围内检测和测量几乎所有的可见光。它适合于色度计测量应用领域。比如彩色打印、医疗诊断、计算机彩色监视器校准以及油漆、纺织品、化妆品和印刷材料的过程控制。??通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝B、紫P)。根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。??由上面的三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS3200D来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其它原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其它的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个光强值,就可以分析出反射到TCS3200D传感器上的光的颜色。??TCS3200D传感器有红绿蓝和清除4种滤光器,可以通过其引脚S2和S3的高低电平来选择滤波器模式,如下图。???TCS3200D有可编程的彩色光到电信号频率的转换器,当被测物体反射光的红、绿、蓝三色光线分别透过相应滤波器到达TAOSTCS3200RGB感应芯片时,其内置的振荡器会输出方波,方波频率与所感应的光强成比例关系,光线越强,内置的振荡器方波频率越高。TCS3200传感器有一个OUT引脚,它输出信号的频率与内置振荡器的频率也成比例关系,它们的比率因子可以靠其引脚S0和S1的高低电平来选择,如下图。?上图中TCS3200传感器各控制引脚与Arduino控制器数字端口连线的对应关系,我设置为:#defineS0????6?#defineS1????5??#defineS2????4??#defineS3????3#defineOUT??2?????????????????????#defineLED??7??当被测物体为不发光物体时,应该把TCS3200的LED引脚设置为高电平,以点亮TCS3200传感器电路板上的四个白光LED灯。??下文展示了一个带有白平衡的测试程序,把这个程序下载到Arduino控制器中,同时把一个白色物体放置在TCS3200颜色传感器之下,点亮传感器上的4个白光LED灯,再打开ArduinoIDE的串口监视器,会出现下图监视画面,可以在该画面中找到白色物体RGB值255以及RGB比例因子。(可通过QQ截图来锁定画面,以便观察。)(双击图片,可以放大看!)???把白平衡时放置在TCS3200颜色传感器之下白色物体拿走,放上另一个黄色物体,在ArduinoIDE串口监视器看到的这个黄色物体RGB值为233、157、56,如下图所示。??打开电脑Windows操作系统自带的画图板,点击菜单栏“颜色”--->“编辑颜色”--->“规定自定义颜色”-->右下角输入RGB值,查看对应的颜色与实际测试的颜色是否相符。实际测试结果是测得的物体颜色与实际颜色有些偏色,但并不影响区分出被测物体是哪种颜色的物体。??介绍完TCS3200传感器颜色识别原理和其与Arduino控制器的硬件连线,以及如何利用串口监视器找到白平衡后的比例因子和被测物体的RGB值。下面展示的是Arduino测试程序。注意:下面的#include《>?要改为单括号形式。?Arduino程序:#include《>//申明库文件//把TCS3200颜色传感器各控制引脚连到Arduino数字端口#defineS0???6??//物体表面的反射光越强,TCS3002D内置振荡器产生的方波频率越高,#defineS1???5?//S0和S1的组合决定输出信号频率比例因子,比例因子为2%????????????????//比率因子为TCS3200传感器OUT引脚输出信号频率与其内置振荡器频率之比#defineS2????4??//S2和S3的组合决定让红、绿、蓝,哪种光线通过滤波器#defineS3????3#defineOUT???2?//TCS3200颜色传感器输出信号连接到Arduino中断0引脚,并引发脉冲信号中断?????????????????//在中断函数中记录TCS3200输出信号的脉冲个数#defineLED???7?//控制TCS3200颜色传感器是否点亮LED灯floatg_SF[3];????//从TCS3200输出信号的脉冲数转换为RGB标准值的RGB比例因子int??g_count=0;?//计算与反射光强相对应TCS3200颜色传感器输出信号的脉冲数//数组用于存储在1s内TCS3200输出信号的脉冲数,它乘以RGB比例因子就是RGB标准值int??g_array[3];??int??g_flag=0;??//滤波器模式选择顺序标志?//初始化TSC3200各控制引脚的输入输出模式//设置TCS3002D的内置振荡器方波频率与其输出信号频率的比例因子为2%voidTSC_Init(){?pinMode(S0,OUTPUT);?pinMode(S1,OUTPUT);?pinMode(S2,OUTPUT);?pinMode(S3,OUTPUT);?pinMode(OUT,INPUT);?pinMode(LED,OUTPUT);?digitalWrite(S0,LOW);??digitalWrite(S1,HIGH);}?//选择滤波器模式,决定让红、绿、蓝,哪种光线通过滤波器voidTSC_FilterColor(intLevel01,intLevel02){?if(Level01!=0)???Level01=HIGH;?if(Level02!=0)???Level02=HIGH;?digitalWrite(S2,Level01);?digitalWrite(S3,Level02);}?//中断函数,计算TCS3200输出信号的脉冲数voidTSC_Count(){?g_count++;}?//定时器中断函数,每1s中断后,把该时间内的红、绿、蓝三种光线通过滤波器时,//TCS3200输出信号脉冲个数分别存储到数组g_array[3]的相应元素变量中voidTSC_Callback(){?switch(g_flag)?{???case0:?????????("->WBStart");????????TSC_WB(LOW,LOW);??//选择让红色光线通过滤波器的模式????????break;???case1:?????????("->FrequencyR=");????????(g_count);??//打印1s内的红光通过滤波器时,TCS3200输出的脉冲个数????????g_array[0]=g_count;???//存储1s内的红光通过滤波器时,TCS3200输出的脉冲个数????????TSC_WB(HIGH,HIGH);?//选择让绿色光线通过滤波器的模式????????break;???case2:?????????("->FrequencyG=");