气压传感器
目的
前面两讲我们学习了Microduino-Weather扩展板 上的光照传感器和温湿度传感器,今天我们学习Microduino-Weather扩展板 上的另一个传感器---气压传感器。
设备
- Microduino-CoreSTM32/zh :Microduino-CoreSTM32小巧精悍,其内核来自于ARM公司具有突破性的Cortex-M3内核的32位闪存微控制器。该内核是专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。
- Microduino-Weather扩展板 :Microduino Weather模块集成了三种传感器,分别是光照强度传感器(TSL2561),数字气压传感器(BMP180),数字温湿度传感器(AM2321)。采用I2C接口与核心相连。广泛用于气象监测。
- 其他硬件设备
- USB数据线 一根
文档
- BMP180气压传感器数据手册: 文件:BMP180.pdf
原理
BMP2561
参数:
- 压力范围:300-1100hPa(海拔9000米...-500米)
- 电源电压:1.62V-3.6V(VDDIO);1.8-3.6V (VDD)
- LCC8封装:LGA
- 尺 寸:3.6mmx3.8*0.93mm
- 低功耗:5μA 在标准模式
- 高精度:低功耗模式下,分辨率为0.06hPa(0.5米)
- 高线性模式下,分辨率为0.03hPa(0.25米)
- 反应时间:7.5ms
- 待机电流:0.1uA
- 接口:I2C
引脚及功能:
操作步骤:
- 发出压力(或温度)转换命令;
- 经过一段时间从UP(UT)寄存器读取原始数据;
- 要得到摄氏温度和hPa 压力需要用到校正数据,这些数据放在BMP085的EEPROM里,通过IIC可以在初始化时读出。
流程如下所示:
工作模式:
BMP180有4种工作模式,每种工作模式下的转换时间和精度都不一样。如下图所示:
其它内容请参见数据手册。
原理图
BMP180光照传感器模块集成在了Microduino-Weather扩展板 上,所以无需外部接线,直接通过I2C与其通信即可。
Microduino-CoreSTM32/zh叠加在Microduino-Weather扩展板上。
注意:数据线需插在Microduino-CoreSTM32/zh上,不能插在扩展板上,不然会无法下载程序。
程序
需要用到的库:
测试程序:
程序说明: 测试程序完成温度、大气压和海拔的测量。
- readTemperature()函数读取温度值;
- readPressure()通过读取未处理的原始数据计算后得出相对于标准大气压的大气压大小;
- readSealevelPressure(float altitude_meters = 0)通过气压计算出标准大气压的大小;
- readAltitude(float sealevelPressure = 101325)计算海拔高度。
调试
步骤一:数据线连接到Microduino-CoreSTM32/zh。
步骤二:下载BMP180库,把BMP180文件夹拷贝到Maple IDE安装目录下的libraries中,打开测试程序sensor4_baroceptorSensor。
步骤三:编译程序,下载程序。
步骤四:打开串口监视界面,观察串口监视界面。
结果
读取的温度、大气压和海拔高度如下图所示: