注册/登录
论坛 > 板卡试用区
发帖|
看3655|回4|收藏
-RainSnow- 看全部
2018-11-20 13:27:47
拿到颜色传感器蛮久了,其实早写好了底层驱动,但是一直没有发帖,今日终于有时间写帖子,与大家分享一下我的开发过程

---------------------------------------------------------------------------------------------------------------------------
没有申请底板真的是比较麻烦的,因为例程是arduino的,但是我手头并没有arduino的板子,于是没办法,只好用51模拟IIC,自己重新写底层,配置寄存器,参照例程数据处理过程对读取的12组8位数据进行处理
----------------------------------------------------------------------------------------------------------------------------
先上几个底层驱动,适用于51单片机
颜色传感器初始化 colorinit.PNG

初始化解释:Mode1:0x2a配置了IR_GAIN = x1 Gain Mode  RGB_GAIN = x1 Gain Mode MEASUREMENT MODE = 120ms Mode
                   Mode2:0x10配置了RGB_EN = Measurement is active.

颜色传感器读取颜色值
colorread.PNG

根据数据手册通信过程得到,需要注意的是在调用该函数时根据需根据Mode1的配置进行延时,给予充分的测量时间

颜色传感器数值计算
colorval.PNG

根据官网例程源码得到,拼接了两个8位缓存数据为16位的正常数据

-------------------------------------------------------------------------------------------------------------------------
再来分析一下通信过程
采用IIC通信,不了解详细过程的可以百度一下,资料很多的
此处放上采集的通信过程
颜色传感器初始化通信
初始化.PNG
红色光源时的通信数据
red.PNG
绿色光源时的通信数据
Green.PNG
蓝色光源的通信数据
Blue.PNG

-----------------------------------------------------------------------------------
最后放几张成品图,LCD屏幕太小了,就只放了RGB三个数据,IR和G2被我省略掉了,如果有需要的直接加上显示就行
拍照技术太烂,各位看官见谅
IMG_6568.JPG
IMG_6570.JPG
IMG_6569.JPG

--------------------------------------------------------------------------------------------
小结:
尽管经测试可以正常工作,但仍会出现偶尔宕机的现象,我没有仿真,不太清楚问题出在哪里
STM32移植中,实现使用OLED输出颜色分解值,但是STM32的IIC硬件太脆弱了,经常性宕机
本帖可能会回来debug,源码暂不开放,待我debug完再说
感谢罗姆半导体赠与的传感器!
有什么问题欢迎提出,一起学习!

微风→寒 看全部
2018-11-21 10:23:53
666                  
gaon2 看全部
2018-11-21 10:45:04
期待 DEBUG
stary666 看全部
2018-11-21 12:37:05
看看 logo.png
stary666 看全部
2018-11-21 12:37:37
不错

罗姆半导体技术社区

Powered by Discuz! X3.4

首页|标准版|触屏版|电脑版