GY-BMP280-3.3 高精度大气压强传感器模块
GY-BMP280-3.3 高精度大氣壓強傳感器模塊
轉(zhuǎn)載于:https://blog.csdn.net/sunshinebooming/article/details/79637822
博世Sensortec - BMP280 是一種專為移動應用設計的絕對氣壓傳感器。該傳感器模塊采用極其緊湊的封裝。得益于小尺寸和低功耗特性,這種器件可用在如移動電話、GPS 模塊或手表等電池供電型設備中。與上代產(chǎn)品相同,BMP180、BMP280 也基于Bosch 成熟的壓阻式壓力傳感器技術,具有高確度和線性度,以及長期穩(wěn)定性和很高的 EMC 穩(wěn)健性。多種設備工作選擇帶來了最高靈活性,可以在功耗、分辨率和濾波性能方面對設備進行優(yōu)化。
BMP280是博世最新推出的數(shù)字氣壓傳感器,具有卓越的性能和低廉的價格,相對精度為±0.12 hPa(相當于±1米),傳感器功耗僅有2.7μA。BMP280具有業(yè)界最小封裝,采用極其緊湊的8引腳金屬蓋LGA封裝,占位面積僅為2.0×2.5mm2,封裝高度為0.95 mm。包括有壓力和溫度測量功能。該氣壓傳感器支持SPI和IIC通信接口,相比上一代的BMP180,精度已有相當大的提升,非常適合應用于低成本的多旋翼飛行器飛行控制器上,價格僅有目前流行的MS5611的四分之一。傳感器模塊它的小尺寸和2.74μA@ 1Hz的低功耗允許在電池驅(qū)動的設備中實現(xiàn)。門內(nèi)導航,醫(yī)療保健以及GPS改進的新興應用需要高相對精度和低TCO。
————————————————
BMP280非常適用于地板水平檢測等應用,因為傳感器具有±0.12 hPa的優(yōu)異相對精度,相當于±1m高度差,偏移溫度系數(shù)(TCO)僅為1.5 Pa / K(相當于12.6厘米/ K)。作為廣泛實施的BMP180的繼承者,BMP280最初在2011年開始大量使用手機中的氣壓測量,BMP280在所有需要精確壓力測量的應用中實現(xiàn)了高性能。同時,BMP280具有更高的應用靈活性,新的濾波器模式和SPI接口,而且相對于BMP180,占位面積縮小了63%。
目錄
- 單片機 BMP280大氣壓強與溫度傳感器使用詳解
- 目錄
- 模塊引腳及相關參數(shù)
- 相關寄存器說明
- 數(shù)據(jù)處理基本過程
- 測量的基本流程
- STC8A8K64S4A12單片機程序(51單片機,STM32等改一下就行了)
- 目錄
模塊引腳及相關參數(shù)
- 本次使用的模塊型號為GY-BM E/P 280,淘寶上到處可以買到,這是對德國博世公司的BMP280芯片的一個應用封裝(實物圖片和封裝基本電路都放在下面)。采用的主控芯片為STC8A8K64S4A12單片機,所以寫的代碼都是最底層的,比較適合小白看(代碼貼在后面)。
- 引腳說明:
Pin1:VCC(3.3V供電)
Pin2:GND
Pin3:SCL(I2C通信模式時鐘信號)
Pin4:SDA(I2C通信模式數(shù)據(jù)信號)
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:主控發(fā)起一次采集命令,傳感器采集一次信號,然后進入Sleep Mode,等待下次喚起(本次沒用到)。
相關寄存器說明
BMP280傳感器內(nèi)部所有寄存器及其地址如下圖所示:
- 測量控制寄存器(ctrl_meas)(0xF4):
Bit7~Bit5:osrs_t[2:0] 控制溫度采樣模式,主要是采樣數(shù)據(jù)的位數(shù)(位數(shù)越大,精度越高),具體配置如下(本次三位都配置為1,最大采樣位數(shù)20Bit):
Bit4~Bit2:osrs_p[2:0] 控制大氣壓強采樣模式,主要是采樣數(shù)據(jù)的位數(shù)(位數(shù)越大,精度越高),具體配置如下(本次三位都配置為1,最大采樣位數(shù)20Bit):
Bit1~Bit0:mode[1:0] 傳感器工作模式控制,00為Sleep Mode,01/10為Forced Mode,11為 Normal Mode(本次配置為11)。 - 配置寄存器(config)(0xF5):
Bit7~Bit5:t_sb[2:0] 設置Normal Mode下的轉(zhuǎn)換間隔時間,具體配置如下(本次配置為000,0.5ms轉(zhuǎn)換一次)
Bit4~Bit2:filter[2:0] 設置傳感器接收外界信號時的,前端濾波電路的濾波系數(shù)的,我也沒仔細研究,就設置了個000,有興趣的童鞋可以自己研究一下,datasheet上說和穩(wěn)定度有關,可以有效減少外界環(huán)境的干擾:
Bit0:spi3w_en 與SPI模式有關,本次沒用到,沒設置。 - 身份編號寄存器(id)(0xD0):
寄存器內(nèi)固定值為0x58,讀取0xD0數(shù)據(jù)的時候,傳感器返回0x58,代表身份辨認完畢。 - 復位寄存器(reset)(0xE0):
寫入0xB6時,所有寄存器(除身份編號寄存器)數(shù)據(jù)全部清零。 - 狀態(tài)寄存器(status)(0xF3):
具體定義如下,感興趣的童鞋自己研究,本次沒用到:
數(shù)據(jù)處理基本過程
該傳感器是使用測量值和校準值(初始化中獲得),通過公式計算得出的,相關公式在datasheet中已經(jīng)貼出了,還給了樣本數(shù)據(jù)(公式挺復雜的,建議先把公式抄到程序中,然后用樣本數(shù)據(jù)傳進去,測試一遍結果對不對,保證公式?jīng)]抄錯)。
數(shù)據(jù)處理中有個坑,請注意,就是讀取補償值數(shù)據(jù)的時候,下圖的數(shù)據(jù)存儲位是LSB/MSB,即數(shù)據(jù)是反過來存儲的,低位字節(jié)在前,高位字節(jié)在后,所以處理數(shù)據(jù)的時候要注意,具體可以見我的代碼中bmp280_MultipleReadTwo()函數(shù):
公式的話,datasheet中也很模糊,配合datasheet中的圖片,湊合看吧:
測量的基本流程
- 初始化
包括I2C初始化(和傳感器通信用),串口初始化(和上位機通信用,查看數(shù)據(jù)),傳感器初始化,兩個通信協(xié)議就不說了,不會的童鞋可以先去看看相關教程,下面主要說說傳感器初始化: - 數(shù)據(jù)全部清零:寫數(shù)據(jù)0xB6到地址0xE0;
- 讀芯片ID:讀地址0xD0;
- 設置測量控制寄存器:寫數(shù)據(jù)0xFF到地址0xF4(測量數(shù)據(jù)位20Bit,Normal Mode);
- 設置配置寄存器:寫數(shù)據(jù)0x00到地址0xF5(測量間隔時間0.5ms,濾波器我沒仔細看,感興趣童鞋自己研究);
- 讀取補償值數(shù)據(jù)
- I2C循環(huán)讀取傳感器參數(shù),代入公式計算獲得結果,并且將結果通過串口輸出到上位機。
?代碼下載(可直接使用):https://download.csdn.net/download/qq_42043397/25136098
總結
以上是生活随笔為你收集整理的GY-BMP280-3.3 高精度大气压强传感器模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 定制Github日历库EPCalenda
- 下一篇: 腾讯云安装docker