TA的每日心情 | 开心 2020-2-14 12:16 |
---|
签到天数: 827 天 连续签到: 1 天 [LV.10]以坛为家III
|
第一次知道BMP180名字,还是在四轴上,目前知道的四轴,好像都是用到了这个型号传感器。
[p=182, null, left]BMP180[p=182, null, left][size=169px]被设计成直接连接到经由[p=182, null, left]I2C[p=182, null, left][size=169px]总线的移动设备的微控制器。
[p=169, null, left][size=169px]压力和温度数据具有由[p=169, null, left]BMP180[p=169, null, left][size=169px]的[p=169, null, left]E2PROM[p=169, null, left][size=169px]中的校准数据来补偿BMP180气压测量范围是300-1100百帕,使用I2C总线与MCU通信,IIC当然操作简单了,同时传感器还附带温度传感器的功能。现在有些手机也具有该类传感器,可实现气压、温度测量
与MCU电路图
我将BMP180的数据通过STM32L073开发板的通信口,经USB线连接电脑,通过串口软件查看,如下连接,link sprite的RX、TX接stm32L073的TX、RX
代码- #include <stdio.h>
- #include "mbed.h"
- #include "BMP180.h"
-
- I2C i2c(P0_17,P0_18); //BMP180 i2c口
- BMP180 bmp180(&i2c);
- Serial pc(P0_23,P0_25); //串口
-
- int main(void) {
-
- while(1) {
- if (bmp180.init() != 0) {
- pc.printf("Error communicating with BMP180\n");
- } else {
- pc.printf("Initialized BMP180\n");
- break;
- }
- wait(1);
- }
-
- while(1) {
- bmp180.startTemperature();
- wait_ms(5); // Wait for conversion to complete
- float temp;
- if(bmp180.getTemperature(&temp) != 0) {
- pc.printf("Error getting temperature\n");
- continue;
- }
-
- bmp180.startPressure(BMP180::ULTRA_LOW_POWER);
- wait_ms(10); // Wait for conversion to complete
- int pressure;
- if(bmp180.getPressure(&pressure) != 0) {
- pc.printf("Error getting pressure\n");
- continue;
- }
-
- pc.printf("Pressure = %d Pa Temperature = %f C\n", pressure, temp);
- wait(1);
- }
- }
复制代码 编译下载,串口查看,波特率9600
手指靠近传感器,温度明显上升
最后感谢爱板网提供的试用,希望还有更多像link sprite好玩的开发板出现。
|
|