电子气压计、无人机定高、登山海拔记录、气象站,都离不开一颗能读大气压的芯片,BMP280就是目前性价比很高的选择。它同时输出气压和温度,气压精度能到±1 hPa,换算成海拔变化大约就是±1米,I2C或SPI两种接口都好接。这篇把接线、读数和海拔换算讲清楚。
BMP280是怎么测出海拔的
BMP280通过内部的高精度压力传感器读出大气压强,再配合温度做补偿。海拔和气压是一一对应的:海拔越高气压越低。所以芯片并不直接输出海拔,而是输出气压和温度,高度要由你自己用海平面标准气压和当前气压换算出来。

模块上通常会引出VIN、GND、SCL、SDA四根线,大多数成品模块还加了稳压,所以可以直接接5V;但裸芯片只吃3.3V,用前看清自己的模块是哪一种。
BMP280怎么接线到Arduino
走I2C时接法跟其他I2C传感器一样:VCC接5V(或3.3V)、GND接地、SCL接A5、SDA接A4。它同时支持SPI,如果板子I2C口被占,可以改用SCL当SCK、SDA当MOSI,再接CS片选脚。

地址要特别留意:BMP280的默认I2C地址是0x77,但如果模块上SDO被拉高,地址会变成0x76。装上模块先扫一下实际的地址,别自己写死。
读海拔和两个避坑点
库用现成的Adafruit_BMP280,初始化时把地址传进去,loop里调readTemperature()和readPressure()就能拿到气压帕斯卡。要显示海拔,在海平面气压写死前先校准一下本地的基准值,否则读数会整体偏高或偏低。
避坑也有两点:一是BMP280对气流很敏感,机箱里风扇一转气压就跳,做气压计时样品外壳尽量开孔且避开风道;二是别拿BMP280同时去当高精度温度计,它的主导功能是气压,温度只是辅助补偿,测气温还是用DS18B20这类更稳。







做气压计记得先校准本地基准气压,不然海拔会偏
机箱风扇一转气压就跳,外壳开孔远离风道很重要
地址0x77还是0x76真得先扫一下,别自己写死