STM32/STM8技术论坛
登录
直播中
roc
9年用户
27经验值
擅长:控制/MCU
私信
关注
[经验]
开源分享 - BMP180大气压传感器模块的使用
传感器
bmp180
BMP180作为一个高精度、超小体积的气压传感器,在很多应用场景下都能见到它的身影,比如航模等一些需要高度数据的场合。下面将把它应用于零知平台进行演示。
1、硬件、软件准备
(1)零知
开发板
-标准板
零知标准板使用了
STM32
F103RBT6 作为MCU,采用32位高性能ARM核心,;包含37个IO引脚、15路PWM、15路ADC(12位精度)、一个USB设备接口、一个USB转串口设备接口;可以使用USB、AC-DC适配器、LI-PO等多种方式供电;供电电压 7v-28v,范围非常的宽。同时零知标准板配合零知开发工具能实现一键下载,使用非常方便。
(2)BMP180大气压传感器模块
该模块VCC为5V,可使用3.3V和5V电压供电。
(3) 杜邦线若干
(4)零知开发工具
2、
电路
连接
这里使用3.3V供电,把SCL和SDA引脚分别接标准板的A5、A4引脚即可。如下:
3、测试
根据芯片说明书,大气压力与海拔高度对应关系如下:
核心代码:
/**
* 文件: BMP180模块测试.ino by 零知实验室
* -^^- 零知开源,让
电子
制作变得更简单! -^^-
**/
#include "BMP180.h"
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("BMP180 传感器启动失败");
while (1) {}
}
}
void loop() {
Serial.print("温度:");
Serial.print(bmp.readTemperature());
Serial.println(" ℃");
Serial.print("压力:");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
// 标准气体时测量的数据 101325 Pa
Serial.print("高度:");
Serial.print(bmp.readAl
ti
tude());
Serial.println(" m");
Serial.print("海平面压力:");
Serial.print(bmp.readSealevelPressure());
Serial.println(" Pa");
// 根据当地的海平面压强进行更精确的实际高度计算
Serial.print("真实高度:");
Serial.print(bmp.readAltitude(101400));
Serial.println(" m");
Serial.println();
delay(500);
}
上述代码测量真实高度时需根据当地的实际气压进行校正,在这里我使用中央气象台查询到的作为依据:
注:1014hPa = 101400Pa,这里的气压值没有很精确,可能会有存在误差。
4、测试结果
查询当地的海拔高度为14米:
实际测量如下:
更多回帖
rotate(-90deg);
回复
相关帖子
传感器
bmp180
基于STM32的
BMP180
气压
传感器
protues仿真设计
1693
【求助】
BMP180
气压
传感器
的使用
7059
定制
BMP180
传感器
PCB
开源
分享
4
基于MSP430F5529单片机的
BMP180
大气压
强温度
661
求
BMP180
气压
传感器
的工作程序
5412
通过
BMP
280
气压
/温度
传感器
模块
测量
大气压
和温度
2119
GY-
BMP
280-3.3 高精度
大气压
强
传感器
模块
16
定制
BMP180
传感器
的教程
1257
MSP430 F5529 单片机
BMP180
大气压
强 温度 海拔 程序
16
STM32开发的
BMP180
气压
传感器
程序源码
3459
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分