壓力BMP180感測器時序詳解

2021-08-22 14:55:49 字數 1368 閱讀 3918

bmp180是一種高精度數字壓力感測器,bmp180的超低功耗,低電壓電子元件經過優化,適用於移動**,pda,gps導航裝置和戶外裝置。

up =壓力資料(16到19位) ut =溫度資料(16位)

測量溫度和壓力

開始測量溫度值ut和壓力值up的時序圖如下所示。在啟動後,主機傳送器件位址寫入,暫存器位址和控制暫存器資料。當接收到資料時,bmp180每8個資料位傳送乙個確認(acks)。主機在最後一次acks後傳送停止條件。

程式為:

iic_stop(); //傳送停止訊號

為了讀出溫度資料字ut(16位),壓力資料字up(16到19位)和e2prom資料如下進行:

在啟動後,主機傳送模組位址寫入命令和暫存器位址。暫存器位址選擇讀取暫存器:e2prom資料暫存器0xaa至0xbf溫度或壓力值ut或up 0xf6(msb),0xf7(lsb),可選0xf8(xlsb)然後,主裝置傳送重啟條件,然後讀取模組位址,bmp180(acks)將對其進行確認。bmp180首先傳送8個msb,由主裝置(ackm)確認,然後是8個lsb。主機傳送「不確認」(nackm),最後傳送停止條件。時序為:

iic_stop(); //傳送停止訊號

return data;

//從bmp180讀乙個16位的資料

short bmp_readtwobyte(uint8_t readaddr)

{ short data;

uint8_t msb,lsb;

iic_start();  

iic_send_byte(0xee); //

iic_wait_ack();

iic_send_byte(readaddr);

iic_wait_ack();

iic_start();  //

iic_send_byte(0xef); //

iic_wait_ack();

msb = iic_read_byte(1);

lsb = iic_read_byte(0);

iic_stop();

//傳送停止訊號

data = msb*256 + lsb;

return data;

下圖顯示了壓力和溫度測量的詳細演算法。

壓力感測器應用分析

壓力感測器主要是測量液體與氣體的壓強的感測器。與其他感測器類似,壓力感測器工作時將壓力通過敏感元器件的變化轉換為電訊號輸出。壓力感測器在很多監測與控制應用中得到廣泛的使用。除了直接的壓力測量,壓力感測器同時也可用於間接測量其他量,如液體 氣體的流量,速度,水面高度或者海拔。壓力感測器 在使用的技術,...

三線壓力感測器原理 數字壓力感測器的接線方式

數字壓力感測器的接線方式 數字壓力感測器的工作原理是壓力直接作用在感測器的膜片上,使膜片產生 與介質壓力成正比的微位移,使感測器的電阻發生變化,和用電子線路檢測這一 變化,並轉換輸出乙個對應於這個壓力的數字標準訊號。很多人都不知道感測器如何連線,其實各種感測器的接線方式基本都是一樣 的,壓力感測器一...

Android感測器開發詳解

效果圖 連線真機milestone,編譯並執行程式,顯示結果如下 結合程式我們做一些解釋。1 android所有的感測器都歸感測器管理器 sensormanager 管理,獲取感測器管理器的方法很簡單 string service name context.sensor service sensor...