这是前几天收到了颜色传感器。它采用主动式检测原理对物体表面的 颜色进行测量。也就是通过 RGB 三种LED主动发送辐射光,利用同一光电管来接收物体反射光的强度来反映物体反射光的颜色。但不能够测量物体本身发射的颜色。生产厂家给出了详细的使用说明。适合电子初学爱好者使用。在模块上使用了 ST 的八位单片机完成颜色检测并通过 I2C 总线输出测量结果。下面对于它的基本功能进行测试一下。
根据模块手册给出的接口定义,使用了一个六芯插座连接 I2C 总线,ERROR状态、按键KEY、以及电源接口。按键接口可以外接机械按钮,后面将其直接接入单片机来模拟按键。使用手边比较多的F103单片机设计测试电路。在最小系统上,连接有一个 OLED 显示测量结果。通过一个六芯接口连接测量模块。其中包括I2C总线,状态、按键和电源。
绘制单面PCB,利用一分钟制板方法,一分钟之后得到了测试PCB。电路板制作的非常完美。下面进行焊接测试。
先对电路板进行上锡,这样就便于后面的焊接。焊接电路,其中有两颗跳线使用 0 欧姆完成。对电路进行清洗,便于后面的测试。
使用CubeMX 生成程序框架,在此基础上开发应用程序。使用 弹簧夹子将 ST-LINK 接入电路板。下载初步测试程序。可以看到 MCU 开始工作了。
加入 OLED 接口软件模块。可以在OLED上显示字符。这样可以方便后面读取数据的调试。
将传感器通过六芯扁平电缆接入测试电路。上电之后,可以看到电路板上的六个LED都点亮了。接口上的5V指示LED点亮。
下面通过MCU编程,模拟按键动作,将KEY端口置低电平,便可以将模块设置为矫正模式。根据数据手册,首先,长按按钮,超过四秒钟,按键指示灯通过快闪到慢闪的变化,进入白色矫正。 然后将白纸放在颜色模块前,再按动按钮,进行白色矫正。 接下来矫正黑色。完成之后便颜色模块放回到正常测量状态了。
矫正前,模块中间的 按钮LED熄灭。单片机在 按钮引线发出超过 5秒钟的低电平,模块中的 按钮指示灯快闪之后转为慢闪,现在进入矫正状态。在模块前放置一个白色纸张,进行白色矫正。单片机发送一个 0.5秒钟的低电平,模块便开始采集矫正。接下来,在模块前放置一个黑色物品,或者没有放置物品。再对按钮管脚发送一个低电平脉冲,完成黑色矫正。程序中,长按按钮,时间为 5秒钟。短按按钮,时间为 500毫秒。这样便可以完成模块的颜色矫正,矫正参数存储在单片机中。
根据颜色检测模块数据手册,编写对应的数据读取命令。首先测试一个模块握手命令。也就是发送 0xaa 命令,可以接收到 0x66 返回数据。这样便可以证明模块 I2C 访问正常。通过发送握手命令,验证模块正常。下面测试读取对应的颜色数据命令。
编写读写RGB命令,在 OLED显示读取的数据。现在显示测量模块前面没有物体情况下的数据。三个通道的数据很小,将手掌放置在模块前面,读取的数据很快增加,直到饱和。由此验证了这个模块的基本功能是正常的。
本文测试了带有 I2C总线的 颜色传感器。它采用三色 LED 主动发送光线,根据反射光强来检测物体表面颜色。关于该模块的其他功能之后再进行测试。
颜色传感器官方资料链接: https://ganv.com.cn/color_sensor.html
[2]颜色传感器颜色识别模块购买连接: https://item.taobao.com/item.htm?app=chrome&bxsign=scd8L53e5cEg4v-CLs9R0Wuw1yPXlETD3WClfh-OAPkRVX6v9QMwG49o-8jzLPoW3K8VAp3Zn7NtBYfrf7ITQ-6poS8WLJcQzCt1ZaCO6lhRUsuKl6kGxo5t0ds-dUJvC00&cpp=1&id=748574717746&price=49.8&shareUniqueId=31127806363&share_crt_v=1&shareurl=true&short_name=h.6TfajkIrN1oqC0K&sourceType=item&sp_tk=RFRqSWVBZUNGV1U%3D&spm=a2159r.13376460.0.0&suid=2f5281dd-fb3b-4066-8d62-70a141b56428&tbSocialPopKey=shareItem&tk=DTjIeAeCFWU%20MF287&un=76168c70fe5c8094d9378eee1c005948&un_site=0&ut_sk=1.Z6Kgq6N3CpcDAGLsDXZ%2Fz7m4_21646297_1744189403508.Copy.1&wxsign=tbw8bPOVlG1Z7KKm-AMGCX3DElS5xIpfJQjGgf7SvDnIYNLoInsmSk2V4WBZpfxKHKOtc77vmgebFcfxzAd2F4Bi9zLJW1ORSTm9IOHMb3WLGOQtDELZyjf7aYcnrQe2jhc&sku_properties=-1%3A-1