搜索
热搜: ROHM 模拟 车载
查看: 3142|回复: 6

[分享] 从零开始,罗姆传感器评估套件搭载BH1745NUC颜色传感器通...

  [复制链接]

该用户从未签到

2384

主题

9837

帖子

0

精华

论坛元老

最后登录
2024-4-23
发表于 2019-7-27 14:05:25 | 显示全部楼层 |阅读模式

使Arduino+各种传感器的电子制作更轻松的罗姆传感器评估套件。本文将讲述使用以前从未接触过的"颜色传感器"来验证罗姆传感器评估套件的强大功能。


恰如其名,颜色传感器是可以获取颜色数据的传感器。颜色传感器还有"色彩传感器"、"颜色识别传感器"、"辨色传感器"、"数字颜色传感器"等名称。颜色传感器的原理是通过其内部的红(R)、绿(G)、蓝(B)传感器加上滤色器将可视光区分为不同的信号来获取颜色数据。罗姆传感器评估套件中搭载了"BH1745NUC"作为颜色传感器模块。


照片1 颜色传感器模块BH1745NUC


照片2 颜色传感器模块BH1745NUC


下面,ROHM将介绍通过Arduino使用颜色传感器的方法。从下图可知,颜色传感器的安装区域与地磁传感器一样,均为I2C I/F区。关于电源电压,地磁传感器为1.8V,颜色传感器为3V,因此应将左上方的电源电压切换跳线针脚切换到3V的位置。


图1 传感器护罩的连接方法说明


照片3 颜色传感器的安装


安装完成后,应进行Arduino的程序设定。接下来,和地磁传感器时一样,应安装使用传感器的库。通过颜色传感器说明页面下载颜色传感器用的库文件。


文件下载完成后,打开Arduino IDE添加库,选择下载的文件"BH1745NUC.zip",颜色传感器的动作准备即告完成。


照片4 添加库"BH1745NUC"


顺利添加库后,可以在"sketch示例"及"使用库"的栏中确认BH1745NUC的标识。


照片5 BH1745NUC被添加到库


运行颜色传感器的样本程序(sketch)

从sketch示例中,调用BH1745NUC的样本程序。该程序单纯显示颜色传感器获取的值。样本程序(sketch)的编译未通过时,可能是Arduino IDE较旧,请用最新的Arduino IDE进行尝试。


BH1745NUC的样本程序(sketch):


照片6 颜色传感器样本程序的运行结果


观看串行监视器中显示的数值,可以看见RED、GREEN、BLUE中增加了CLEAR。这个CLEAR表示可以获取可视光波长强度的值。一边观察串行监视器,一边将带颜色的物体靠近传感器,或者将光靠近传感器,可以发现传感器的值会发生变化。若将传感器遮蔽起来,由于光自身无法进入传感器,CLEAR的值会变小。这种情况下,RGB的数值也会变小,很难进行颜色判别。与此相反,若用彩色LED等照射传感器,则可以检测到超过10000的数值。由此可见,通过彩色LED等进行输入是比较合适的。


利用颜色传感器分析颜色,用全彩色LED显示

我们通过样品对颜色传感器的动作进行确认后,下一步将对其进行具体的应用。首先,为了正确处理颜色数据,我们必须制作一个简单的电路,即通过颜色传感器判别颜色,并将判别的颜色用全彩色LED显示出来。


将颜色传感器的值通过全彩色LED显示的sketch程序:


for(int i=0;i<3;i++){
if(maxVal < rgbc){
maxVal = rgbc;
}
}
rVal = (float(rgbc[0])/maxVal)*255;
gVal = (float(rgbc[1])/maxVal)*255;
bVal = (float(rgbc[2])/maxVal)*255;

此程序改变了样本程序的一部分。在红色指定的部分,RGB获取最大值,将其作为最大值(maxVal)保存在变量中,然后与该最大值进行比较,计算出RGB各颜色的强度比率(float(rgbc[0])/maxVal部分)。然后,由于AnalogWrite可输出0~255的值,通过颜色强度比率乘以AnalogWrite的最大值255,将检出的颜色大致转换为RGB,输出到全彩色LED中。


由于试用的全彩色LED的特性不同,有时会出现无法正确反映RGB各值的情况,这种情况下可通过调整LED的电阻值、或者忽略程序中的小值等方法,来获取分级的颜色。在以下程序中,我们将红色字符部分小于50的各值忽略不计,将其作为0来处理。


//设定各颜色的阈值
if(rVal < 50){
rVal = 0;
}
if(gVal < 50){
gVal = 0;
}
if(bVal < 50){
bVal = 0;
}


将颜色传感器的值通过全彩色LED显示的sketch程序2:


回复

使用道具 举报

该用户从未签到

2248

主题

1万

帖子

1

精华

论坛元老

最后登录
2024-4-23
发表于 2019-7-27 15:48:24 | 显示全部楼层
不错的资料
回复 支持 反对

使用道具 举报

该用户从未签到

2248

主题

1万

帖子

1

精华

论坛元老

最后登录
2024-4-23
发表于 2019-7-27 15:50:38 | 显示全部楼层
不错的资料
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-9-1 17:50
  • 签到天数: 2 天

    [LV.1]初来乍到

    19

    主题

    5777

    帖子

    0

    精华

    论坛元老

    最后登录
    2024-4-23
    发表于 2019-7-28 13:09:59 | 显示全部楼层
    学习学习
    rohm.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2384

    主题

    9837

    帖子

    0

    精华

    论坛元老

    最后登录
    2024-4-23
     楼主| 发表于 2019-7-29 10:07:51 | 显示全部楼层

    谢谢回复
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2384

    主题

    9837

    帖子

    0

    精华

    论坛元老

    最后登录
    2024-4-23
     楼主| 发表于 2019-7-29 10:08:48 | 显示全部楼层

    谢谢回复
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-9-12 09:26
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    2321

    帖子

    0

    精华

    论坛元老

    最后登录
    2024-4-22
    发表于 2022-1-12 20:39:37 | 显示全部楼层
    颜色识别,也想做个
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|罗姆半导体技术社区

    GMT+8, 2024-4-23 18:56 , Processed in 0.123050 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表