传感技术
登录
直播中
dql2016
9年用户
342经验值
擅长:模拟技术 测量仪表 嵌入式技术 处理器/DSP 测量仪表 嵌入式技术 模拟技术 处理器/DSP
私信
关注
[经验]
【罗姆传感器评估板试用体验连载】五、项目结项之读取全部传感器数据
传感器
将气压传感器评估板(BM1390GLV-EVK-001)、颜色传感器评估板(BH1749NUC-EVK-001)、温度传感器评估板(BH1900NUX-EVK-001)全部插到扩展板的iic接口上,根据不同的地址进行访问,读取数据。
arduino程序如下:
#include
#include
#include
#include
#include "BH1900NUX.h"
#include
#define I2C_FREQUENCY (400000)
#define DIGIT_NUM (4)
int32_t meas_
ti
me;
BH1749NUC bh1749nuc(BH1749NUC_DEVICE_ADDRESS_39);//颜色
BH1900NUX bh1900(BH1900NUX_SLAVE_ADDRESS);//温度
BM1390GLV bm1390glv;//气压
void bm1390_error_func(int32_t result)
{
uint8_t cnt;
switch (result) {
case BM1390GLV_COMM_ERROR:
(void)Serial.println("Communication Error.");
break;
case BM1390GLV_WAI_ERROR:
(void)Serial.println("ID Error.");
break;
default:
(void)Serial.println("Unknown Error.");
break;
}
(void)Serial.println("BM1390GLV Check System and Driver Parameter.");
cnt = 0;
while (1) {
(void)Serial.print(".");
if (cnt < 30) {
cnt++;
} else {
cnt = 0;
(void)Serial.println();
}
delay(1000);
}
return;
}
void bh1900_error_func(int32_t result)
{
switch (result) {
case BH1900NUX_COMM_ERROR :
(void)Serial.println("BH1900NUX Communication Error.");
break;
case BH1900NUX_WAI_ERROR :
(void)Serial.println("BH1900NUX Who am I Error.");
break;
case BH1900NUX_PARAM_ERROR :
(void)Serial.println("BH1900NUX Parameter Error.");
break;
default :
(void)Serial.println("BH1900NUX Unknown Error.");
break;
}
while (1) {
(void)Serial.println("BH1900NUX Check System.");
delay(1000);
}
return;
}
void bh1900_setup()
{
int32_t result;
meas_time = 0;
(void)Serial.print("BH1900NUX Sample");
Wire.setClock(I2C_FREQUENCY);
result = bh1900.init();
if (result > 0) {
meas_time = result;
} else {
bh1900_error_func(result);
}
result = bh1900.start();
if (result != BH1900NUX_RESULT_OK) {
bh1900_error_func(result);
}
delay(meas_time);
return;
}
void bh1749_setup() {
byte rc;
rc = bh1749nuc.init();
if (rc != 0) {
Serial.println(F("BH1749NUC initialization failed"));
Serial.flush();
}
}
void bm1390_setup()
{
int32_t result;
String DriverVersion;
DriverVersion = bm1390glv.get_driver_version();
(void)Serial.print("BM1390GLV Driver Version : ");
(void)Serial.println(DriverVersion);
result = bm1390glv.init();
if (result == BM1390GLV_COMM_OK) {
(void)bm1390glv.start();
} else {
bm1390_error_func(result);
}
return;
}
void bh1749_loop() {
byte rc;
unsigned short color[5];
rc = bh1749nuc.get_val(color);
if (rc == 0) {
Serial.write("BH1749NUC (RED) = ");
Serial.println(color[0]);
Serial.write("BH1749NUC (GREEN) = ");
Serial.println(color[1]);
Serial.write("BH1749NUC (BLUE) = ");
Serial.println(color[2]);
Serial.write("BH1749NUC (IR) = ");
Serial.println(color[3]);
Serial.write("BH1749NUC (GREEN2) = ");
Serial.println(color[4]);
}
}
void bh1900_loop()
{
int32_t result;
float temp;
result = bh1900.get_val(&temp);
if (result == BH1900NUX_RESULT_OK) {
(void)Serial.print("BH1900NUX [TEMP(degree Celsius)] = ");
(void)Serial.println(temp, DIGIT_NUM);
}
return;
}
void bm1390_loop()
{
int32_t result;
float32 press, temp;
result = bm1390glv.get_val(&press, &temp);
if (result == BM1390GLV_COMM_OK) {
(void)Serial.write("Pressure(hPa):Temperature(degree Celsius) = ");
(void)Serial.print(press);
(void)Serial.write(", ");
(void)Serial.print(temp);
(void)Serial.println();
} else {
bm1390_error_func(result);
}
return;
}
void setup()
{
Serial.begin(9600);
while (!Serial) {
}
Wire.begin();
bh1900_setup();
bh1749_setup();
bm1390_setup();
}
void loop()
{
bh1749_loop();
bh1900_loop();
bm1390_loop();
delay(1000);
}
获取到3个传感器的数据后,就可以将它们打包按照一定的数据帧格式发送了,例如发送到串口透传lora、4g、wifi、蓝牙等模块,扩展很多功能。
lv_0_20220315201720(1)
更多回帖
rotate(-90deg);
回复
相关帖子
传感器
【
罗
姆
传感器
评估
板
试用
体验
连载
】二、
传感器
示例整合和
项目
应用
2504
【
罗
姆
传感器
评估
板
试用
体验
连载
】四、颜色
传感器
测试
2361
【
罗
姆
传感器
评估
板
试用
体验
连载
】二、温度
传感器
测试
1976
【
罗
姆
传感器
评估
板
试用
体验
连载
】三、气压
传感器
测试
2713
【
罗
姆
传感器
评估
板
试用
体验
连载
】BH1900温度
传感器
传感
芯片
10607
【
罗
姆
传感器
评估
板
试用
体验
连载
】BH1749颜色
传感
芯片
10275
【
罗
姆
传感器
评估
板
试用
体验
连载
】一、BM1390气压
传感
芯片
11079
【
罗
姆
传感器
评估
板
试用
体验
连载
】3.颜色
传感器
(简介+引脚+寄存
器
)
3858
【
罗
姆
传感器
评估
板
试用
体验
连载
】4.气压
传感器
(简介+引脚+寄存
器
)
11263
【
罗
姆
传感器
评估
板
试用
体验
连载
】-02-
传感器
篇- 温度
传感器
评估
板
BH1900NUX-EVK-001
1921
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分