Arduino UNO测试BMP280温度气压传感器
BMP280简介
BMP280是一个二合一数字环境检测传感器,传感器采用非常紧凑的封装。它是基于博世经过验证的压阻式压力传感器技术,可以测量所处周围环境的温度、气压。由于气压随高度变化,可以估算高度,因此对于无人机和导航应用来说非常方便。在导航方面,气压计也可以用来增强GPS定位效果或者配合IMU传感器,实现三维(3D)室内导航。支持IIC和SPI通信接口。
敏感元件 | 测量范围 | 误差 |
---|---|---|
温度 | 0 to 65 ºC | +/- 1 ºC |
气压 | 300 to 1100 hPa | +/- 1.7 hPa |
相对精度:±0.12hPa(±1m)
绝对精度:±1hPa(±8.33m)
温度测量精度: 0.01℃
更多详细的技术规格信息请参见BMP280数据手册
接口说明
VCC 供电正极3.3V
GND 供电负极
SCL SPI/IIC模式时钟信号输入
SDA SPI模式的MOSI数据信号的输入,IIC模式的数据信号的输入和输出
SDO SPI模式的MISO数据信号的输出,IIC模式时为IIC器件地址设置引脚,接GND时器件地址为1110110(0x76),接VCC时器件地址为1110111(0x77),此模块默认接的GND
CSB SPI/IIC模式的选择引脚,当接VCC时为IIC模式,当接GND时为SPI模式,此模块默认接的VCC
BMP280与Arduino UNO接线与程序
BME280 | SPI接线方式 | IIC接线方式 |
---|---|---|
SCL | D13 | A5 |
SDA | D11 | A4 |
SDO | D12 | / |
CS | D10 | / |
Arduino IDE库管理器安装 DFRobot_BMP280
打开示例代码
#include "DFRobot_BMP280.h"
#include "Wire.h"typedef DFRobot_BMP280_IIC BMP; // ******** use abbreviations instead of full names ********BMP bmp(&Wire, BMP::eSdoLow);#define SEA_LEVEL_PRESSURE 1015.0f // sea level pressure// show last sensor operate status
void printLastOperateStatus(BMP::eStatus_t eStatus)
{switch(eStatus) {case BMP::eStatusOK: Serial.println("everything ok"); break;case BMP::eStatusErr: Serial.println("unknow error"); break;case BMP::eStatusErrDeviceNotDetected: Serial.println("device not detected"); break;case BMP::eStatusErrParameter: Serial.println("parameter error"); break;default: Serial.println("unknow status"); break;}
}void setup()
{Serial.begin(115200);bmp.reset();Serial.println("bmp read data test");while(bmp.begin() != BMP::eStatusOK) {Serial.println("bmp begin faild");printLastOperateStatus(bmp.lastOperateStatus);delay(2000);}Serial.println("bmp begin success");delay(100);
}void loop()
{float temp = bmp.getTemperature();uint32_t press = bmp.getPressure();float alti = bmp.calAltitude(SEA_LEVEL_PRESSURE, press);Serial.println();Serial.println("======== start print ========");Serial.print("temperature (unit Celsius): "); Serial.println(temp);Serial.print("pressure (unit pa): "); Serial.println(press);Serial.print("altitude (unit meter): "); Serial.println(alti);Serial.println("======== end print ========");delay(1000);
}
打开串口监视器显示出传感器测量的数据
总结
通过本实验了解了BMP280传感器的基本使用,并测量出温度、气压、高度数据。
Arduino UNO测试BMP280温度气压传感器相关推荐
- Arduino UNO测试BMP388温度气压传感器
原文链接:https://www.yourcee.com/newsinfo/2929077.html BMP388传感器简介 BMP388是一个二合一数字传感器,可以测量温度,绝对大气压.由于气压随高 ...
- Arduino UNO测试BME680环境传感器
原文链接:https://www.yourcee.com/newsinfo/2929148.html BME680简介 BME680是一个四合一数字环境检测传感器,可以测量所处周围环境的温度.湿度.气 ...
- Arduino UNO测试MH-Z16二氧化碳CO2传感器
原文链接:https://www.yourcee.com/newsinfo/2928917.html MH-Z16二氧化碳传感器简介 利用非色散红外(NDIR技术)原理对空气中存在的CO2 进行探测, ...
- 初出茅庐的小李第36篇博客之读取旋转编码器正反转状态(arduino uno 测试)
旋转编码器的引脚 CLK(A相) DATA(B相) SWITCH VCC GND 工作原理 旋转编码器的工作原理以及如何在Arduino中使用 https://www.yiboard.com/thre ...
- 从0 开始 DIY你的Arduino UNO
简 介: 通过实验,验证了利用CH340C制作Arduino UNO最小系统的电路正确性.利用Arduino的IDE对于制作的电路板下载Bootloader的时候,选择开发板为Arduino UNO, ...
- Arduino UNO驱动ADS1115模数转换模块
Arduino UNO驱动ADS1115模数转换模块 简介 ADS1115模块原理图 Arduino UNO与ADS1115接线图 Arduino UNO测试代码 总结 原文链接:https://ww ...
- Arduino uno 连接 LCD1602A显示18B20监测温度
##Arduino uno 连接 LCD1602A显示18B20测试温度 面包板接线图 代码 #include <LiquidCrystal.h> //引入依赖 #include < ...
- 时间间隔感测试器(下):Arduino uno
本文是上篇的延续,可以测量从LED亮到按下按钮的具体时长,并显示出来.但在功能增加的同时,占用的晶体管资源增加了多少呢?得到有效利用的又有多少呢? 目录 一.Arduino是什么? 二.部件 1.Ar ...
- Arduino UNO控制带AB相磁通量式编码器电动推杆(测试阻尼)实录(L289N电机驱动)
前段时间为了测试实验器材的阻尼,需要去开发一套装置来测试.提出用Arduino单片机来控制电动推杆(Linear Actuator)来制造相应速度的运动,搭配上测力计,从而根据来测得阻尼,在这里简单记 ...
最新文章
- Mobileye REM地图
- RabbitMQ核心概念
- 四. 常见H.264视频编解码器(X264和JM)及参考软件JM的下载与编解码
- POJ2226 不错的最小顶点覆盖
- MongoDB shell 操作
- content-type对照表
- mongodb java id 查询数据_java 用 _id 查找 MongoDB 下的数据
- java IO(四):键盘录入
- ML《决策树(二)C4.5》
- 树莓派安装python3.8_在树莓派(Raspberry Pi)上编译安装更新版本的Python
- html页面阅读pdf,在HTML中查看PDF文件的最佳阅读器-HTML PDF Viewer
- 如何有效提升软件测试质量?
- 学习笔记 | 通用能力提升
- 【深度学习概念】感受野
- 关于linux fc多路径巡检
- Android之模仿微信登陆界面(一)
- RoI Pooling 和 RoI Align
- 镭速传输荣获“2021年度优秀软件产品”称号
- 恒讯科技分析:国内游戏服务器租用市场的大致情况怎么样呢?
- 什么样的教育是真正有意义的?---范美忠