GD32E231学习5:颜色传感器模块GY-31测试
[复制链接]
几年前买过个GY-31的颜色传感器模块,使用的芯片是TCS3200,这次的题目就是使用这个颜色传感器模块来弄一个色卡密码锁。今天就先来测试下这个模块,先直接获取颜色的脉冲值显示,后续再计算具体的颜色,然后用全彩OLED屏显示检测到的颜色值和颜色,这样就方面很多了,比较直观。 TCS3200颜色传感器是一款全彩的颜色检测器,包括了一块TAOS TCS3200RGB感应芯片和4个白光LED灯,TCS3200能在一定的范围内检测和测量几乎所有的可见光。它适合于色度计测量应用领域。比如彩色打印、医疗诊断、计算机彩色监视器校准以及油漆、纺织品、化妆品和印刷材料的过程控制。 通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝B、紫P)。根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。 由上面的三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS3200D 来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其它原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其它的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个光强值,就可以分析出反射到TCS3200D传感器上的光的颜色。 TCS3200D传感器有红绿蓝和清除4种滤光器,可以通过其引脚S2和S3的高低电平来选择滤波器模式。 TCS3200D有可编程的彩色光到电信号频率的转换器,当被测物体反射光的红、绿、蓝三色光线分别透过相应滤波器到达TAOS TCS3200RGB感应芯片时,其内置的振荡器会输出方波,方波频率与所感应的光强成比例关系,光线越强,内置的振荡器方波频率越高。TCS3200传感器有一个OUT引脚,它输出信号的频率与内置振荡器的频率也成比例关系,它们的比率因子可以靠其引脚S0和S1的高低电平来选择。
GY-31的相关引脚定义和参数定义
引脚定义初始化 上一篇使用PA6作为外部中断测试的,用按键测试没问题,但是上了颜色传感器后就收不到信号了,我一度怀疑颜色传感器好久不用坏掉了,折腾了一两个小时,家里没有示波器看不到信号,只好用万用表测试,GY31的输出和板子断开后有1.65V的电压,说明有信号的,但连到板子上就是不行,后来换成了PA9作为外部中断输入,一下就好了,真是折腾,但是到现在也搞不明白PA6引脚就为啥不行。。
PA9外部中断函数
GY-31模块的数据处理,这个模块处理的时间比较长,要三四秒种,后续看下这个是否可以进行优化。
显示效果,换不同颜色的纸,数据有明显变化
|