作为一个高精度、超小体积的气压传感器,BMP180在很多应用场景下都能见到它的身影,比如航模等需要高度数据的场合;下面讲解在零知平台上该模块的使用。
这里使用的模块如下图:
这个模块VCC是5v电压;该模块可以3.3v和5v两种供电模式。根据芯片说明书,大气压力与海拔高度对应关系如下:
/**
* 文件: BMP180模块测试.ino by 零知实验室([url=http://www.lingzhilab.com]www.lingzhilab.com[/url])
* -^^- 零知开源,让电子制作变得更简单! -^^-
* 时间: 2018/10/18 11:16
* 说明:
**/
#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.readAltitude());
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,这里没有更精确的气压值,因此会有误差。
在查询到当地的海拔高度为:
实际测量如下:(二十五层高度,室内,有些误差)
完整工程