玩轉X-CTR100 l STM32F4 l BMP280氣壓計傳感器

我造輪子,你造車,創客一塊兒造起來!塔克創新資訊【塔克社區 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/ 性能優化

    

本文介紹X-CTR100控制器 擴展BMP280氣壓計傳感器,模塊型號爲GY-BM E/P280,淘寶上能夠買到。 函數

氣壓計可用於海拔高度測量,經常使用於無人機中,實現定高功能。 性能

原理

BMP280是一款絕對的氣壓傳感器,專爲移動應用而設計。傳感器模塊採用極其緊湊的封裝。其小尺寸和低功耗容許在諸如移動電話,GPS模塊或手錶的電池供電設備中實現。 測試

做爲其前身BMP180,BMP280基於博世通過驗證的壓阻式壓力傳感器技術,具備高精度和線性度以及長期穩定性和高EMC穩健性。衆多器件操做選項提供了最高的靈活性,可針對功耗,分辨率和濾波器性能優化器件。爲開發人員提供了一組通過測試的默認設置(例如用例),以便儘量簡化設計。 優化

應用 ui

- 加強GPS導航(例如,時間改進,航位推算,斜率檢測) spa

- 室內導航(樓層檢測,電梯檢測) .net

- 戶外導航,休閒和運動應用 設計

- 天氣預報 3d

- 醫療保健應用(例如肺活量測定法)

- 垂直速度指示(例如上升/降低速度)

引腳說明:

Pin1:VCC(3.3V供電)

Pin2:GND

Pin3:SCL(I2C通訊模式時鐘信號)

Pin4:SDA(I2C通訊模式數據信號)

Pin5:CSB(SPI通訊模式下用到的引腳,本次沒用到,能夠懸空)

Pin6:SDO(傳感器地址控制位,接GND的時候I2C中器件地址爲0xEC,接高電平爲0xEC+ 1,本次接GND)

傳感器測試範圍:

溫度:-45℃~+85℃

大氣壓強:0~20000hPa(百帕)

測量主要模式:

Sleep Mode:做電流達到uA級別,典型值爲0.1uA,最大值爲0.3uA,全部測量工做都中止。

Normal Mode: 正常工做,相關工做間隔時間能夠經過寄存器控制。

Forced Mode:主控發起一次採集命令,傳感器採集一次信號,而後進入Sleep Mode,等待下次喚起(本次沒用到)。

BMP280傳感器內部全部寄存器及其地址以下圖所示,更詳細說明,請參考數據手冊。

例程

初始化BMP180,採集氣壓值和溫度數據並輸出顯示。

硬件說明

硬件資源:

  • 串口UART1
  • LF接口(IIC2接口)
  • 擴展模塊BMP180氣壓計(需自備)

硬件鏈接:

模塊鏈接到LF IIC2接口,鏈接以下圖所示。

    

軟件生態

X-SOFT軟件生態,X-API文件以下。

ax_bmp280.c——X-CTR100 擴展BMP280氣壓計源文件

ax_bmp280.h——X-CTR100 擴展BMP280氣壓計頭文件

操做函數以下:

uint8_t AX_BMP280_Init(void); //BMP280傳感器初始化

uint32_t AX_BMP280_GetPressure(void);    //BMP280獲取氣壓值

uint32_t AX_BMP280_GetTemperature(void);    //BMP280獲取溫度值

軟件說明

主程序代碼以下。

int main(void)

{

    uint32_t temp, press;

 

    //X-CTR100初始化

    AX_Init(115200);

    printf("***X-CTR100 BMP280氣壓傳感器例程***\r\n\r\n");

 

    //模塊初始化及配置

    AX_BMP280_Init();

 

    while (1)

    {

        press = AX_BMP280_GetPressure();

        temp = AX_BMP280_GetTemperature();

 

        printf("壓力值:%d(0.1Pa) 溫度:%d (0.01℃)\r\n", press, temp);

 

        AX_Delayms(1000);

        AX_LEDG_Toggle();

    }

}

實現效果

運行效果以下圖所示。

    

參考

https://blog.csdn.net/sunshinebooming/article/details/79637822

相關文章
相關標籤/搜索