如果您想構(gòu)建自己的溫度監(jiān)測系統(tǒng)或測量無人機(jī)的高度,或者只是想測量您所在地區(qū)的大氣壓力,那么您在項(xiàng)目中使用的最佳模塊之一就是BMP280 壓力傳感器模塊。BMP280是絕對壓力和溫度監(jiān)測傳感器,是BMP085、BMP180、BMP183傳感器的升級版。為什么叫升級版?它將在以下各節(jié)中討論。
BMP280 傳感器模塊可以與 Arduino、PIC、AVR 等微控制器一起使用。對于這個項(xiàng)目,我們將使用Arduino Uno 和 BMP280以及 LCD 16x2 顯示模塊來顯示溫度和壓力值。在將 BMP280 與 Arduino 連接之前,我們需要下載 Adafruit 開發(fā)的BMP280 Arduino 庫。
所需組件
阿杜諾
BMP280
連接電線
面包板
液晶顯示器- 16x2
BMP280 壓力傳感器模塊:
BMP280 傳感器模塊在 1.71V 的最小電壓 (VDD) 下工作,而之前版本的傳感器模塊在 1.8V (VDD) 下工作。就電流消耗而言,BMP280 消耗 2.7uA,而 BMP180 消耗 12uA,BMP183 和 BMP085 各消耗 5uA。BMP280 還支持新的過濾模式。BMP280 傳感器模塊支持 I2c 和 SPI 協(xié)議,而其余傳感器支持 I2c 或 SPI。BMP280 傳感器模塊的精度為 ±0.12 hPa,相當(dāng)于海拔高度差±1 m。由于這些關(guān)鍵特性,它主要用于各種應(yīng)用。BMP傳感器由壓力傳感元件、濕度傳感元件和溫度傳感元件組成,它們進(jìn)一步連接到壓力前端、濕度前端和溫度前端。這些前端 IC 是用于放大小信號的靈敏度模擬放大器。該模擬前端 IC 的輸出作為輸入信號饋送到 ADC。在這種情況下,模擬值被轉(zhuǎn)換為數(shù)字電壓,并且該電壓被饋送到邏輯電路以進(jìn)一步與外界連接。
BMP280 傳感器模塊由三種功耗模式組成,睡眠模式、強(qiáng)制模式和正常模式。在睡眠模式下,不執(zhí)行任何測量,并且功耗最低。在強(qiáng)制模式下,根據(jù)選定的測量和過濾選項(xiàng)執(zhí)行單次測量。正常模式在測量和待機(jī)周期之間連續(xù)循環(huán),周期時間段將由 Tstandby 定義。待機(jī)模式下的電流略高于睡眠模式。
將 BMP280 與 Arduino 連接的電路圖:
將Arduino 與 BMP280傳感器和 LCD連接的電路圖如下所示。
傳感器的 VCC 和 GND 引腳連接到 Arduino 的 3v3 和 GND 引腳。傳感器的 SCL 和 SDA 引腳連接到 Arduino 板的 A5 和 A4。LCD連接如下
將 BMP280 與 Arduino 連接的 Arduino 程序:
完整的BMP280 Arduino 代碼可以在本頁底部找到,可以直接上傳到您的 Arduino 板。下面給出相同的解釋
包含這些庫以啟用特殊功能。#include
#include#include #include #include
為 Adafruit_BMP280 創(chuàng)建對象 BMP。創(chuàng)建目標(biāo)文件以訪問特殊功能。
Adafruit_BMP280 bmp;// I2C
設(shè)置 Arduino 的引腳以與 LCD 通信。使用這些引腳數(shù)據(jù)將被傳輸。
液晶液晶屏(9、8、5、4、3、2);
初始化 LCD 和串行通信。
無效設(shè)置(){ lcd.開始(16,2); 序列號.開始(9600); Serial.println(F("BMP280 測試")); lcd.print("歡迎來到"); lcd.setCursor(0,1); lcd.print("電路文摘"); 延遲(1000); lcd.clear(); 如果(!bmp.begin()){ Serial.println(F("找不到有效的 BMP280 傳感器,檢查接線!")); 而(1); }
該函數(shù)在 bmp 對象初始化失敗時起作用。
/* 數(shù)據(jù)表中的默認(rèn)設(shè)置。*/ bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* 操作模式。*/ Adafruit_BMP280::SAMPLING_X2,/* 溫度。過采樣 */ Adafruit_BMP280::SAMPLING_X16, /* 壓力過采樣 */ Adafruit_BMP280::FILTER_X16, /* 過濾。*/ Adafruit_BMP280::STANDBY_MS_500); /* 待機(jī)時間。*/ }
這部分代碼在串行監(jiān)視器上打印溫度,用于調(diào)試目的。
無效循環(huán)(){ Serial.print(F("溫度 = ")); Serial.print(bmp.readTemperature()); Serial.println("*C");
函數(shù)bmp.readPressure和bmp.readTemprature用于調(diào)用特殊函數(shù)并返回溫度和壓力值。
lcd.print(bmp.readTemperature()); lcd.print(bmp.readPressure());
Arduino BMP280壓力傳感器接口項(xiàng)目的工作
函數(shù)bmp.readTemprature()和bmp.readPressure()用于返回溫度和壓力值。這些函數(shù)是一組執(zhí)行特殊任務(wù)的語句,在我們的例子中是返回溫度和壓力文件。使用bmp.readTemprature()和bmp.readPressure()函數(shù)調(diào)用這些函數(shù)。lcd.setCursor將 LCD 的光標(biāo)設(shè)置到屏幕上所需的位置。液晶打印命令從程序員設(shè)置的位置打印數(shù)據(jù)。如果 LCD 沒有設(shè)置位置,默認(rèn)以(0,0)為初始位置,連續(xù)打印數(shù)據(jù)。下一個數(shù)據(jù)占據(jù)下一列的位置,并且該過程繼續(xù)進(jìn)行,直到它到達(dá)行的末尾并移動到下一行。
BMP280 可用于飛行玩具、手機(jī)、平板電腦、PC、GPS 設(shè)備、便攜式保健設(shè)備、家庭氣象站等。按照此程序并使用頭文件和一些特殊功能,我們可以輕松地將 BMP280 與阿杜諾。完整的工作也可以在下面給出的視頻中找到,希望您喜歡這個BMP280 Arduino 教程并學(xué)到一些有用的東西。
#include
#include
#include
#include
Adafruit_BMP280 bmp; // I2C
//Adafruit_BMP280 bmp(BMP_CS); //硬件SPI
//Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
液晶液晶(9、8、5、4、3、2);
無效設(shè)置() {
lcd.begin(16,2);
序列號.開始(9600);
Serial.println(F("BMP280 測試"));
lcd.print("歡迎來到");
lcd.setCursor(0,1);
lcd.print("電路文摘");
延遲(1000);
lcd.clear();
if (!bmp.begin()) {
Serial.println(F("找不到有效的 BMP280 傳感器,檢查接線!"));
而(1);
}
/* 數(shù)據(jù)表中的默認(rèn)設(shè)置。*/
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* 操作模式。*/
Adafruit_BMP280::SAMPLING_X2, /* 溫度過采樣 */
Adafruit_BMP280::SAMPLING_X16, /* 壓力過采樣 */
Adafruit_BMP280::FILTER_X16, /* 過濾。 */
Adafruit_BMP280::STANDBY_MS_500); /* 待機(jī)時間。*/
}
void loop() {
Serial.print(F("Temperature = "));
Serial.print(bmp.readTemperature());
Serial.println("*C");
lcd.setCursor(0,0);
lcd.print("溫度= ");
lcd.print(bmp.readTemperature());
Serial.print(F("壓力 = "));
Serial.print(bmp.readPressure());
Serial.println("Pa");
lcd.setCursor(0,1);
lcd.print("按=");
lcd.print(bmp.readPressure());
Serial.print(F("大約高度 = "));
Serial.print(bmp.readAltitude(1018)); /* 調(diào)整為當(dāng)?shù)仡A(yù)測!*/
Serial.println("m");
序列號.println();
延遲(2000);
}
-
壓力傳感器
+關(guān)注
關(guān)注
35文章
2344瀏覽量
180288 -
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192207 -
BMP280
+關(guān)注
關(guān)注
1文章
20瀏覽量
6008
發(fā)布評論請先 登錄
BMP280壓力溫度傳感器的驅(qū)動設(shè)計(jì)與實(shí)現(xiàn)

【Ti SimpleLink SensorTag試用體驗(yàn)】+ SensorTag BMP280氣壓傳感器服務(wù)加入
【TI SimpleLink SensorTag試用體驗(yàn)】+BMP280壓力傳感器
通過BMP280氣壓/溫度傳感器模塊測量大氣壓和溫度
【RVBoards-哪吒】Lab4:大氣壓強(qiáng)傳感器BMP280
GY-BMP280-3.3的相關(guān)資料推薦
讓BMP280溫度和壓力傳感器在NodeMCU ESP8266板上工作,無法從BMP280獲得任何輸出是怎么回事?
BMP280氣壓傳感器的特點(diǎn)性能及應(yīng)用
BMP280數(shù)字壓力傳感器的用戶手冊免費(fèi)下載

BMP280氣壓傳感器的制作
使用BMP280測量溫度、壓力和高度

評論