第一步,认识器件:TCS230是TAOS公司推出的可编程彩色光到频率的转换器,它把可配置的硅光电二极管与电流频率转换器集成在一个单一的CMOS电路上,同时在单一芯片上集成了红绿蓝(RGB)三种滤光器,是业界第一个有数字兼容接口的RGB彩色传感器,TCS230的输出信号是数字量,可以驱动标准的TTL或CMOS逻辑输入,因此可直接与微处理器或其他逻辑电路相连接,由于输出的是数字量,并且能够实现每个彩色信道10位以上的转换精度,因而不再需要A/D转换电路,使电路变得更简单,图1是TCS230的引脚和功能框图。
第二步,理解电路连接:下面简要介绍TCS230芯片各个引脚的功能及它的一些组合选项。
S0、S1用于选择输出比例因子或电源关断模式;S2、S3用于选择滤波器的类型;OE反是频率输出使能引脚,可以控制输出的状态,当有多个芯片引脚共用微处理器的输出引脚时,也可以作为片选信号,OUT是频率输出引脚,GND是芯片的接地引脚,VCC为芯片提供工作电压,表1是S0、S1及S2、S3的可用组合。
第三步,结合电路接口理解检测颜色的工作原理
测试RGB颜色:1)、依次选通三颜色的滤波器,然后对TCS230的输出脉冲依次进行计数。当计数到255时停止计数,分别计算每个通道所用的时间,这些时间对应于实际测试时TCS230每种滤波器所采用的时间基准,在这段时间内所测得的脉冲数就是所对应的R、G和B的值。2)、设置定时器为一固定时间 (例如10ms),然后选通三种颜色的滤波器,计算这段时间内TCS230的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。在实际测试时,室外同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。
4. 第四步,参考例程(非原创)
/*********************************************************************/
#include
#define uchar unsigned char
#define uint unsigned int
uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码
uchar wei[5]={0Xf7,0XEf,0XDf,0XBf,0X7f}; //位的控制端
uint z,x,c,v,b,n,date; //定义数据类型
uint dispcount=0; //中断计数
uint lck=0; //定时器计数
uint disp=0; //频率值
/******************************************************************
延时函数
******************************************************************/
void delay(uchar t) {
uchar i,j;
for(i=0;i for(j=13;j>0;j--); { } } } /********************************************************************** 数码管动态扫描 *********************************************************************/ void xianshi() { /*****************数据转换*****************************/ 后面参考文库内容 http://wenku.baidu.com/link?url=6CWP6mRKPrFDUMH0FmulOJnDBnHEOEm8s6f6SwN2wY486s23T2Zgr3GrDhWcQvGEhVh41nL-3OgJZnvF-jHIalvCQoCW_zXTKekcT1DmM2y
输入wvftr gtujcfdwaavnk walkeer appera