您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > TCS230颜色传感器原理与应用编程
TCS230颜色传感器1.颜色传感器原理TCS230采用8引脚的SOIC表面贴装式封装,在单一芯片上集成有64个光电二极管。这些二极管共分为四种类型。其中16个光电二极管带有红色滤波器;16个光电二极管带有绿色滤波器;16个光电二极管带有蓝色滤波器;其余16个不带有任何滤波器,可以透过全部的光信息。这些光电二极管在芯片内是交叉排列的,能够最大限度地减少入射光辐射的不均匀性,从而增加颜色识别的精确度;另一方面,相同颜色的16个光电二极管是并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差。工作时,通过两个可编程的引脚来动态选择所需要的滤波器。该传感器的典型输出频率范围从2Hz~500kHz,用户还可以通过两个可编程引脚来选择100%、20%或2%的输出比例因子,或电源关断模式。输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。例如,当使用低速的频率计数器时,就可以选择小的定标值,使TCS230的输出频率和计数器相匹配。2.引脚图及其控制与功能a.实物图(芯片的4引脚延伸进去这是区分引脚的标志。)b.引脚编程设置及其功能1.输出频率分频选择S0S1输出频率分频比例LL掉电LH2%HL20%HH100%2.滤光颜色选择S2S3光电二极管类型LL红色LH蓝色HL清除(无滤波器)HH绿色3.测量频率的方法(1)依次选通三种颜色的滤波器,然后对TCS230的输出脉冲依次进行计数。当计数到250时停止计数,分别计算每个通道所用的时间。这些时间对应于实际测试时TCS230每种滤波器所采用的时间基准,通过串口观察。在这段时间内所测得的脉冲数就是所对应的R、G和B的值。(实际测得的是一个范围的值)(2)设置定时器为一固定时间(例如10ms),然后选通三种颜色的滤波器,计算这段时间内TCS230的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。在实际测试时,使用同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。4.注意的问题(1)电源线必须采用0.01μF~0.1μF的电容退耦,且电容应尽可能靠近芯片。(2)芯片的OE引脚和GND引脚之间需采用低阻抗连接,以提高抗噪声能力。(3)芯片的输出设计为短距离驱动标准TTL或CMOS逻辑输入电平。若输出线超过12英寸,则建议使用缓冲器或线驱动器。(4)TCS230识别模块重启、更换光源等情况时,都需要进行白平衡调整。简单的测试程序如下:#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbitS0=P1^0;//S0,S1为设置输出的占空比sbitS1=P1^1;sbitS2=P1^3;//S2,S3为设置虑光的模式sbitS3=P1^4;sbitOE=P1^2;//使能voidRS232_init(){TMOD=0X20;//定时器1工作在方式1SCON=0x50;PCON=0X80;//TH1=TL1=0XFF;//22.1184M晶振,波特率设置为115200TR1=1;TI=0;RI=0;}voidsend_char(uchara)//发送数据{SBUF=a;while(TI==0);TI=0;}ucharget_char()//接收数据{while(RI==0);RI=0;returnSBUF;}uintcolor_display(ucharm){uinttime,a;a=m;TMOD=0x61;//计数器1,定时器0工作在16位方式TH0=TL0=0;//从零开始计数,定时TH1=TL1=0;S0=1;S1=1;S2=m&0x01;S3=m&0x02;OE=0;TR0=TR1=1;while(TL1250);TR1=TR0=0;OE=1;time=TH0*256+TL0;return(time);}voidmain(){uinttemp;RS232_init();OE=1;while(1){temp=color_display(get_char());RS232_init();send_char(temp/1000);send_char(temp%1000/100);send_char(temp%100/10);send_char(temp%10);}}通过串口来选择颜色种类的通道,再由于不同颜色对应不同的时间(计数值一样),从而确定不同的颜色。
本文标题:TCS230颜色传感器原理与应用编程
链接地址:https://www.777doc.com/doc-2023270 .html