0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino传感器–ROHM传感器评估套件概览

张旭 来源:罗姆 作者:罗姆 2023-02-23 17:37 次阅读

这篇文章来源于DevicePlus.com英语网站的翻译稿。

我们利用此套件中的接近传感器完成了一个非常好玩的项目,具体内容请点击闪光万圣节面具项目。

poYBAGPzFf6AUNozAAD509_LlPY748.jpg

ROHM Sensor Shield(ROHM传感器开发板)是一种兼容Arduino的扩展板,旨在帮助用户快速将各种传感器添加到自己的开发项目中。凭借其直观的布局和紧凑性,该开发板成为初学者和高级Arduino爱好者的绝佳原型制作工具。

pYYBAGPzFgCADEMRAABtXb7Tlvg857.jpg

Sensor Evaluation Kit(传感器评估套件)配备了ROHM传感器开发板和8种不同的ROHM传感器:加速度传感器、气压传感器、地磁传感器、环境光/接近传感器、颜色传感器、霍尔传感器、温度传感器和 紫外线传感器。

pYYBAGPzFgGAZWPQAABl1bGNzgo263.jpg

有关传感器开发板和每个传感器的详细文档,请参阅https://www.rohm.com/web/global/sensor-shield-support,该网页还为您提供了各个传感器所需的Arduino库的下载链接。评估套件包装中的用户手册对传感器开发板与传感器的配合使用进行了说明,该用户手册的电子版也可在该网站上找到。

pYYBAGPzFgOATW2DAAEMbA4J6M0644.jpg

在本文中,我们将概述一下传感器开发板的设置和首次使用情况,然后利用开发板和其他器件展示一个简单的物联网项目。

poYBAGPzFgWANSAbAADZGdYMv1A270.jpg

图1 ROHM传感器开发板(右上方)以及8种不同传感器/@CoreStaff

该开发板有两个功能特别突出。首先,开发板允许用户同时处理多个传感器。对于涉及两种独立传感形式的项目,用户可以一次性对系统进行整体原型设计,而不必分多个步骤进行。很方便,是吧?

pYYBAGPzFgaAKdsaAACXXfljveg013.jpg

图2 多个传感器同时插到传感器开发板上
(图中连接了温度传感器和接近传感器/环境光传感器)

其次,不同的传感器可以直接插入开发板。这使原型制作更加紧凑,并使大型项目更易于管理。由于Analog模拟)、GPIO和I2C通信连接都是在开发板PCB内部实现的,因此无需连接多个跳线。

我们以I2C协议为例进行说明。一个独立的I2C传感器与Arduino通信至少需要四根单独的连线(SDA、SCL、电源和地)以及SDA和SCL线上的2个上拉电阻。而使用传感器开发板,用户仅需将等效的ROHM传感器插到开发板上的一个I2C接口即可。

传感器开发板的长边处有一排公插针。大多数针脚可以用来配置各种硬件中断。作为初学者,我们将仅关注板子边缘标有1.8V、3V和5V的前三行。这三个引脚表示所连接传感器的电压设置。某些传感器需要特定的工作电压,因此需要选择不同的电压设置。要选择相应电压,用户必须用跳线跨接相应电压电平的那对针脚。图3展示了用跳线选择3V电压的示例。

pYYBAGPzFgiAUz-5AAExYQhUL4E083.jpg

图3 用跳线选择3V电压

在开发板上两条Arduino连接排母之间,有八组不同的母排针接口(虚线框内)。这八组母排针用来连接不同的传感器。

需要注意的是,使用某个传感器时,必须将其插入与传感器通信方式相符的母排针中,这一点很重要。比如,温度传感器的输出是模拟值,因此,它只能连至标有模拟连接的两组接口中的任何一组。手册用鲜明的颜色描述了母排针接口与通信协议的对应关系,请参见下图。

pYYBAGPzFgmARqf6AADibPwVS5w532.jpg

蓝:Analog;红:数字GPIO;绿:I2C

测试温度传感器

输出为模拟值的两个传感器是温度传感器和紫外线传感器。以温度传感器为例,要使用这个传感器,我们首先必须下载相应的名为BD1020HFV(温度传感器模块的名称)的Arduino库。

请打开库随附的示例程序。请在库include语句下方的程序顶部,将变量 tempout_pin 设置为值 A2。在void setup()中,BD1020对象(温度传感器对象)将使用该值进行初始化,表示系统会从模拟引脚2读取传感器的输出值。这意味着我们必须将温度传感器模块连至传感器开发板上的 Analog_2 排针连接器

poYBAGPzFguAX5gxAADiFd_UQKM575.jpg

图4 温度传感器连至Analog 2连接器(板右下方)

将示例程序上传到Arduino并打开Serial Monitor(串行监视器)。此软件界面上应该会不断出现消息,显示所测量的当前温度。要测试传感器是否按预期工作,请将手指按到传感器的金属触点上。此时,监视器界面上的消息应该会显示温度已经升高!

pYYBAGPzFgyABf1iAACLGthwdnE974.jpg

图5 温度传感器金属触点的标记为“PAD1”

输出示例如下:“BD1020HFV Temp=23.59 [degrees Celsius], ADC=277”。

ADC”表示传感器输出模拟值(电压)的整数转换。

测试加速度计

接下来,我们来研究一下使用I2C协议通信的传感器。此类传感器包括加速度计、压力传感器、地磁传感器、环境光/接近传感器和颜色传感器。以加速度计为例,要使用这个传感器,我们首先必须下载名为KX022的相应Arduino库。

请打开这个库提供的示例程序。将加速度计模块插到传感器开发板的任意一个I2C接口上,并上传示例程序。您可能需要在程序的第一行(#include语句上方)输入“#define byte uint8_t”,因为Arduino编译器可能无法将“byte”识别为有效数据类型。

poYBAGPzFg6AJveZAAEcA8ZNaW4441.jpg

图6 加速度计模块连至开发板的I2C接口

打开Serial Monitor(串行监视器)。监视器应该不断显示消息,指示X、Y和Z轴的加速度。三个轴在加速度计上用小图表示。

poYBAGPzFhCAAwSyAAClgftQ3e8073.jpg

图7 加速度计模块以及三个轴向

要测试加速度计,请在其中一个轴向上突然移动该模块。这时,该方向上的加速度分量会发生变化。

输出示例如下:

“KX022 (X) = -0.02 [g]

KX022 (Y) = -0.00 [g]

KX022 (Z) = 1.00 [g]”

测试霍尔传感器

最后,我们来看一下唯一一种通过GPIO连接通信的传感器,即霍尔传感器。霍尔传感器仅检测磁场的存在或不存在。因此,它的输出是数字信号:“low(低电平)”表示磁场存在;“high(高电平)”表示没有磁场。

在Arduino上,数字信号输入和输出(简称IO)的工作范围为5V电平,因此我们必须将跳线移至5V设置。

pYYBAGPzFgiAUz-5AAExYQhUL4E083.jpg

图8.选择5V电源

要使用这个传感器,我们首先必须下载名为BD7411的相应Arduino库。请打开库随附的示例程序。传感器开发板上标有GPIO的数字输出传感器(比如霍尔传感器)插槽只有一个。将示例程序上传到Arduino并打开Serial Monitor。如果存在磁场,那么串行监视器会显示“BD7411G Magnet field Detect!”(BD7411G检测到磁场)。

如果您想在自己的项目中使用该传感器开发板,只需下载并在程序包含所需的传感器库,然后用这些库中的不同方法与传感器进行通信即可。您可以参考每个库附带的示例程序以及该库的.cpp和.h源文件,以确切了解如何使用这些方法。

我用不同传感器及其库实现了多个简单项目:

1. 当霍尔传感器附近存在磁场时,点亮LED

poYBAGPzFhOAcT3bAADyei-6VEs077.jpg

图9 完成的霍尔传感器项目

元器件

LED

220Ω 电阻(限制LED的电流

跳线

面包板

ROHM 传感器开发板与霍尔传感器模块

Arduino Uno

装有Arduino IDE的电脑

连接电脑与Arduino Uno的USB电缆

在该项目中,每当霍尔传感器附近存在磁场时,LED灯亮起。

将传感器开发板安装到Arduino的母排针上

将霍尔传感器模块插到开发板的GPIO接口上

通过220Ω电阻将LED的负极引线连至传感器开发板的地

将LED的正极引线连到传感器屏蔽板上的数字引脚12上

将以下代码上传到Arduino:

#include 

int led_pin = 12;

int hallout_pin = 0; // use D0 pin

BD7411 bd7411;

void setup() {

 bd7411.init(hallout_pin);

 pinMode(led_pin, OUTPUT);

}

void loop() {

 int hallout;

 hallout = bd7411.readoutpin();

 if (hallout == 0) {

   digitalWrite(led_pin, HIGH);

 } else

 {

   digitalWrite(led_pin, LOW);

 }

 delay(500);

}

2. 利用Processing画出温度随时间变化的曲线

poYBAGPzFguAX5gxAADiFd_UQKM575.jpg

图10 装到传感器开发板的Analog_2接口上的温度传感器(右下方)

元器件:

ROHM 传感器开发板与温度传感器模块

Arduino Uno

装有Arduino和Processing(https://processing.org/download/)IDE的电脑

连接电脑与Arduino Uno的USB电缆

该项目通过Processing Sketch绘制一段时间内的温度曲线。

将传感器开发板安装到Arduino的母排针上

将温度传感器模块插到开发板的Analog_2接口上

在Processing中运行以下程序:

import processing.serial.*;

Serial arduinoPort;        // The serial port

int currentX = 0;         // horizontal position of the graph

float data = 0;

void setup () {

 

 size(1000, 300);

 arduinoPort = new Serial(this, Serial.list()[1], 9600); //"intercept" serial print messages

 arduinoPort.bufferUntil('n');

 background(0);

}

float oldData =0;

void draw () {

 stroke(0, 255, 0);

 if (currentX++ >= width) //start at the left of the window with a blank screen when the screen has been filled

 {

   currentX=0;

   background(0);

 }

 

 if (Math.abs(data-oldData) < 30) //prevent the program from drawing noise spikes

 {

   line(currentX, height - oldData, currentX++, height - data);

 }

 else

 {

   stroke(0, 0, 0);

   line(currentX, height - oldData, currentX++, height - data);

 }

 oldData = data;

}

void serialEvent (Serial arduinoPort) {

 

 String serialInput = arduinoPort.readStringUntil('n');

 if (serialInput != null) {

   serialInput = trim(serialInput);

   data = int(serialInput);

   

   println(data);

   

   data = map(data, 0, 1023, 0, height);

 }

}

将以下程序上传至Arduino:

#include 

int tempout_pin = A2;

BD1020 bd1020;

void setup() {

 Serial.begin(9600);

 while (!Serial);

 bd1020.init(tempout_pin);

}

void loop() {

 float temp;

 bd1020.get_val(&temp);

 Serial.println(bd1020.temp_adc);

 

 delay(500);

}

我们利用此套件中的接近传感器完成了一个非常好玩的项目,具体内容请点击闪光万圣节面具项目。

poYBAGPzDoyAVmHgAAAjEJsiUjQ529.png

Rahul Iyer

Rahul是加州大学洛杉矶分校电气工程学院的学生,爱好电子和机器人项目,尤其热衷于电动汽车技术和辅助机器人技术。

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2526

    文章

    48093

    浏览量

    740069
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184834
收藏 人收藏

    评论

    相关推荐

    Arduino兼容传感器扩展板SensorShield-EVK-001

    ;SensorShield-EVK-001"是将ROHM集团量产中的8种传感器分别在PCB板上实装并与开放平台连接板组成的套件。通过与在全球电子工具领域应用广泛的Arduino Uno
    发表于 04-11 06:20

    【罗姆传感器评估板试用体验连载】一、产品开箱

    感谢eefans和厂家提供的试用活动。本次收到的是来自罗姆放的传感器评估板。板卡采用日系简洁风的包装:板卡全家福:套件包含3个传感器板卡和一个扩展板以及一个
    发表于 02-11 19:08

    【罗姆传感器评估板试用体验连载】1.开箱+资料准备+环境搭建+拓展板

    本帖最后由 戟战士 于 2022-2-25 11:40 编辑 一、开箱 非常感谢开心酱和厂商提供这次免费试用的机会,传感器评估板已签收,内含Arduino UNO开发板*1、拓展板*1以及
    发表于 02-25 11:35

    【罗姆传感器评估板试用体验连载】-02-传感器篇- 温度传感器评估板BH1900NUX-EVK-001

    【罗姆传感器评估板试用体验连载】-02-传感器篇-温度传感器评估板BH1900NUX-EVK-001鸣谢: 需要准备的工具和资料
    发表于 02-26 11:05

    【罗姆传感器评估板试用体验连载】-03-传感器篇- 气压传感器评估板BM1390GLV-EVK-001 颜色传感器评估板BH1749NUC-EVK-001

    本帖最后由 jf_18702540 于 2022-3-9 11:37 编辑 【罗姆传感器评估板试用体验连载】-03-传感器篇-气压传感器评估
    发表于 03-08 16:06

    【罗姆传感器评估板试用体验连载】开箱展示

    首先感谢电子发烧友平台的眷顾,有幸申请到了Rohm传感器开发板套件。这次申请的套件包含了Rohm三个类型
    发表于 03-11 14:01

    ROHM 地磁传感器介绍与应用

    本视频将指导您地磁传感器评估方法 。支持Arduino Uno、mbed等开放平台的罗姆传感器评估套件
    的头像 发表于 06-26 17:43 5688次阅读

    ROHM 加速度传感器的介绍与使用

    支持Arduino Uno、mbed等开放平台的罗姆传感器评估套件 SensorShield-EVK-001。可将罗姆的8种高性能传感器组合
    的头像 发表于 06-26 17:30 3602次阅读

    利用Arduino Create和ROHM传感器评估套件制作智能花园系统

    今天,我们将利用ROHM传感器评估套件打造一套智能花园系统。在此项目中,我们整合接近/环境光传感器(ALS)和其他
    的头像 发表于 02-23 17:58 823次阅读
    利用<b class='flag-5'>Arduino</b> Create和<b class='flag-5'>ROHM</b><b class='flag-5'>传感器</b><b class='flag-5'>评估</b><b class='flag-5'>套件</b>制作智能花园系统

    ROHM Arduino传感器套件打造DIY万圣节僵尸面具

    今天,我们会利用ROHM传感器评估套件制作一款超级简单的万圣节僵尸面具!我们将使用ROHM接近传感器
    的头像 发表于 02-23 17:45 600次阅读
    用<b class='flag-5'>ROHM</b> <b class='flag-5'>Arduino</b><b class='flag-5'>传感器</b><b class='flag-5'>套件</b>打造DIY万圣节僵尸面具

    Arduino预处理器指令教程

    在适用于ROHM传感器评估套件的轻量级Arduino库中,我介绍了RohmMultiSensor——帮您轻松连接
    的头像 发表于 02-24 09:51 1169次阅读
    <b class='flag-5'>Arduino</b>预处理器指令教程

    采用ROHM传感器套件的DIY Arduino家庭安防系统 第1部分 机制

    在该项目中,我们将使用Arduino Mega和ROHM传感器评估套件来制作一套DIY Arduino
    的头像 发表于 02-24 15:08 713次阅读
    采用<b class='flag-5'>ROHM</b><b class='flag-5'>传感器</b><b class='flag-5'>套件</b>的DIY <b class='flag-5'>Arduino</b>家庭安防系统 第1部分 机制

    ROHM传感器评估套件的3D外壳以及RohmMultiSensor库更新

    不久前,我创建了RohmMultiSensor - Arduino库,利用该库可以轻松控制ROHM传感器评估套件中的多个
    的头像 发表于 02-24 09:51 627次阅读
    <b class='flag-5'>ROHM</b><b class='flag-5'>传感器</b><b class='flag-5'>评估</b><b class='flag-5'>套件</b>的3D外壳以及RohmMultiSensor库更新

    适用于罗姆传感器评估套件的轻量级 Arduino

    罗姆传感器评估套件是一种兼容 Arduino 的扩展板 (Shield),配有以下8钟传感器:加速度计、压力
    的头像 发表于 02-24 10:21 573次阅读
    适用于罗姆<b class='flag-5'>传感器</b><b class='flag-5'>评估</b><b class='flag-5'>套件</b>的轻量级 <b class='flag-5'>Arduino</b>库

    利用ROHM传感器评估套件实现UCLA AirMouse–第2部分

    在利用ROHM传感器评估套件实现UCLA AirMouse – 第1部分中,我们完成了项目的硬件。对于发射器部分,我们将AirMouse按钮以及Uno的GPIO引脚和RF模块之间的接口
    的头像 发表于 02-27 10:27 357次阅读