国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用BMP180進行溫度壓力和高度測量

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-05 10:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

BMP180 是博世Sensortec的新一代數字氣壓和溫度傳感器。在本教程中,我們將簡要回顧該設備并描述如何將其與Arduino Uno板連接以測量周圍的溫度和壓力。我們還將討論從壓力讀數中檢索傳感器高度的問題。

使用BMP180的溫度,壓力和高度測量

實驗設置

Bosch Sensortag的BMP180是一款超低功耗數字溫度和壓力傳感器,具有高精度和穩定性。它由壓阻傳感器,模數轉換器,帶EEPROM和串行I2C接口的控制單元組成.BMP180傳感器對壓力和溫度的原始測量必須使用校準數據補償溫度影響和其他參數。保存到EEPROM中。在本教程中,我們將使用Arduino開發板從BMP180傳感器讀取溫度和氣壓測量值,并在基于1.44英寸ILI9163的TFT顯示器上顯示數據。如果您想重復此實驗,則需要做以下事情。

1。任何以3.3V電壓運行的Arduino開發板 。我正在使用Elecrow的 Crowduino Uno 板,它具有一個板載滑動開關,可在3.3V至5.0V之間選擇工作電壓。如果要使用此板,請確保將開關滑動到3.3V位置。

Elecrow的Crowduino Uno板

2。 BMP180傳感器模塊

BMP180傳感器突破模塊

3。基于ILI9163的TFT顯示屏 (我使用的是Elecrow的1.44“尺寸顯示屏)。

1.44” TFT顯示屏(ILI9163驅動程序)

4。 一塊面包板和少量跳線,用于將傳感器和顯示器連接到Arduino板上。

下圖描述了本教程的實驗設置。 BMP180和TFT顯示屏均由3.3V供電。 BMP180支持I2C接口,因此SDA和SCL引腳連接到Arduino板的A4和A5引腳。 ILI9163 TFT驅動器支持SPI接口。下圖右側所示的表描述了顯示器和Arduino之間的接線。 I2C和SPI引腳名稱印在BMP180和TFT顯示模塊的底層絲網上。

o4YBAF3XGfGAMklXAAEwRNsfB2g403.jpg

傳感器和顯示設置

這是在實驗板上進行的該實驗的實際設置。

與Arduino的BMP180傳感器連接

Arduino固件

對于傳感器讀數,我使用的是Love Electronics Ltd.的BMP180 Arduino庫(我不確定這家公司現在是否存在,或者它在庫中的含義是不是) 。您需要下載它(下面提供的鏈接)并將此庫安裝到Arduino/庫/位置。

下載BMP180庫

用于ILI9163 TFT LCD,我正在使用另一個免費的開源Arduino庫TFT_ILI9163C,您可以從以下鏈接下載。

下載TFT_ILI9163C Arduino庫

TFT庫將Adafruit_GFX庫用于字體,因此您也需要下載并安裝它。

下載Adafruit_GFX_Library

這兩個庫都安裝好了為Arduino編寫固件。我在下面編寫和共享的固件以攝氏度和華氏度為單位顯示溫度,以毫巴和inHg為單位的大氣壓力。為了計算傳感器高度,我們需要了解以下部分中討論的參考表面壓力值。

關于檢索傳感器高度的重要說明

請注意,BMP180傳感器提供溫度和壓力的絕對測量值,但不提供海拔高度的直接輸出。由于大氣壓力隨高度降低,因此您可以通過了解地面的參考壓力值來找出傳感器的垂直位移。例如,為了從海平面計算傳感器高度,您需要知道您當地的當前平均海平面壓力。平均海平面壓力不是恒定的,而是隨環境溫度和天氣模式而變化。找出當前海平面壓力的最簡單方法是查看您最近的機場或國家氣象服務的網站。他們通常每小時大約在其網站上更新一次。我住在弗吉尼亞州的威廉斯堡,我從Weather.gov網站檢查了平均海平面壓力。在我進行此實驗時,平均海平面壓力為1027.7毫巴或102770帕斯卡。在下面的Arduino代碼中( float seaLevelPressure = 102770; ),我使用此值作為平均海平面壓力,并使用傳感器讀取壓力的差值和該值來計算傳感器位置的高度,那是我在弗吉尼亞州威廉斯堡的房子的二樓。因此,為了計算傳感器位置的高度,您必須用當前的本地海平面壓力值(帕斯卡)(1毫巴= 100帕斯卡)替換該值。有了本地海平面壓力的知識,下面的Arduino固件也以英尺和米為單位顯示海平面上方的高度。

o4YBAF3XGgaAWzueAAJhAwdLoEc765.jpg

平均海平面壓力數據

這是此項目的完整Arduino代碼。我建議使用下面的下載文件,而不是從此處復制和粘貼代碼,這有時無法正常工作。

#include

#include

#include

#include

#include // Define pins for ILI9163 SPI display

#define __CS 10

#define __DC 9 // Labeled as A0 in some modules

#define __RST 8

// Connect SDA to Arduino pin 11 (MOSI), and SCK to 13 (SCK) // Color definitions

#define BLACK 0x0000

#define BLUE 0x001F

#define RED 0xF800

#define GREEN 0x07E0

#define CYAN 0x07FF

#define MAGENTA 0xF81F

#define YELLOW 0xFFE0

#define WHITE 0xFFFF

#define TRANSPARENT -1

TFT_ILI9163C display = TFT_ILI9163C(__CS, __DC, __RST); // Store an instance of the BMP180 sensor.

BMP180 barometer;

// Store the current sea level pressure at your location in Pascals.

float seaLevelPressure = 102770; // Williamsburg, VA on Dec 31, 2014, 14:54 Eastern Time void setup()

{

display.begin();

display.setBitrate(24000000);

display.setRotation(2);

display.clearScreen();

// We start the serial library to output our messages.

Serial.begin(9600);

// We start the I2C on the Arduino for communication with the BMP180 sensor.

Wire.begin();

// We create an instance of our BMP180 sensor.

barometer = BMP180();

// We check to see if we can connect to the sensor.

if(barometer.EnsureConnected())

{

Serial.println(“Connected to BMP180.”); // Output we are connected to the computer.

// When we have connected, we reset the device to ensure a clean start.

barometer.SoftReset();

// Now we initialize the sensor and pull the calibration data.

barometer.Initialize();

}

else

{

Serial.println(“No sensor found.”);

}

} void loop()

{

if(barometer.IsConnected)

{

// Retrive the current pressure in Pascals.

long currentPressureP = barometer.GetPressure();

float currentPressuremb = currentPressureP/100.0;

float currentPressureinHg = currentPressuremb*0.02953;

// Print out the Pressure.

Serial.print(“Pressure: ”);

Serial.print(currentPressureP);

Serial.println(“ Pa”);

Serial.print(“Pressure: ”);

Serial.print(currentPressuremb);

Serial.println(“ mbar”);

Serial.print(“Pressure: ”);

Serial.print(currentPressureinHg);

Serial.println(“ inHg”);

// Retrive the current altitude (in meters)。 Current Sea Level Pressure is required for this.

float altitudem = barometer.GetAltitude(seaLevelPressure);

float altitudeft = altitudem*3.2808;

// Print out the Altitude.

Serial.print(“ Altitude: ”);

Serial.print(altitudem);

Serial.print(“ m”);

Serial.print(“ Altitude: ”);

Serial.print(altitudeft);

Serial.print(“ ft”);

// Retrive the current temperature in degrees celcius.

float currentTemperatureC = barometer.GetTemperature();

float currentTemperatureF = (9.0/5.0)*currentTemperatureC+32.0;

// Print out the Temperature

Serial.print(“ Temperature: ”);

Serial.print(currentTemperatureC);

Serial.write(176);

Serial.print(“C”);

Serial.print(currentTemperatureF);

Serial.write(176);

Serial.print(“F”);

Serial.println(); // Start a new line.

// Now display results on LCD

display.fillScreen();

display.setCursor(0, 0);

display.setTextColor(WHITE);

display.setTextSize(1);

display.print(“BMP180 Sensor Demo”);

// Display temperature in F

display.setCursor(0, 16);

display.setTextColor(YELLOW);

display.setTextSize(2);

display.print(“T=”);

display.print(currentTemperatureF);

display.setTextSize(1);

display.print(“ o”);

display.setTextSize(2);

display.print(“F”);

// Display temperature in C

display.setCursor(24, 32);

display.print(currentTemperatureC);

display.setTextSize(1);

display.print(“ o”);

display.setTextSize(2);

display.print(“C”);

//Now display pressure in mbar

display.setCursor(0, 48);

display.setTextColor(CYAN);

display.setTextSize(2);

display.print(“P=”);

display.print(currentPressuremb,1);

display.print(“mb”);

// Display pressure in inHg

display.setCursor(24, 64);

display.setTextColor(CYAN);

display.print(currentPressureinHg,1);

display.print(“inHg”);

//Now display pressure in mbar

display.setCursor(0, 80);

display.setTextColor(WHITE);

display.setTextSize(2);

display.print(“H=”);

display.print(altitudeft,1);

display.print(“ft”);

// Display pressure in inHg

display.setCursor(24, 96);

display.setTextColor(WHITE);

display.print(altitudem,1);

display.print(“m”);

delay(5000); // Show new results every second.

}

}

在此處下載Arduino草圖

輸出

所示的傳感器高度大約是海拔88英尺,與此處發布的城市數據相比是正確的:http://en.wikipedia.org/wiki/威廉斯堡,_弗吉尼亞州

pIYBAF3XGlyAES5FAAGcSH2TtSo242.jpg

二樓測量值

傳感器對高度非常敏感。通過將傳感器放在我一樓的餐桌上進行以下測量。高度降低了約8英尺,這似乎是合理的。

pIYBAF3XGmmAHQZDAAIEmsjOcss210.jpg

一樓的測量
責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2576

    文章

    55047

    瀏覽量

    791392
  • bmp180
    +關注

    關注

    2

    文章

    7

    瀏覽量

    11774
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用熱電偶進行溫度測量時的注意事項

    為估算半導體器件的結溫,會對封裝表面溫度進行測量,但如果測量操作有誤,可能無法得到準確結果。本應用筆記將說明溫度
    的頭像 發表于 02-05 14:40 ?385次閱讀

    BMP390L 氣壓傳感器:賦能無人機垂速指示與氣壓定高

    大家有沒有想過,無人機為什么能夠在空中如此穩定地懸停?為什么它們能夠準確地保持特定高度飛行?這背后離不開一個看似小巧卻功能強大的傳感器——BMP390L氣壓傳感器。今天咱們就來深入聊聊這個讓無人機
    的頭像 發表于 01-29 10:12 ?177次閱讀
    <b class='flag-5'>BMP</b>390L 氣壓傳感器:賦能無人機垂速指示與氣壓定高

    探索Thermometrics壓力溫度組合傳感器:卓越性能與廣泛應用

    壓力溫度組合傳感器將壓力溫度測量功能集成于一個傳感器組件中。為實現可靠且精確的測量,該傳感器
    的頭像 發表于 12-15 09:55 ?525次閱讀

    氣體壓力傳感器工作溫度性能受到多種因素影響

    氣體壓力傳感器的主要功能是通過感應氣體壓力的變化來輸出相應的電信號。然而,這種感應機制并非在所有溫度條件下都能準確進行。溫度的變化會影響傳感
    的頭像 發表于 10-18 17:36 ?403次閱讀
    氣體<b class='flag-5'>壓力</b>傳感器工作<b class='flag-5'>溫度</b>性能受到多種因素影響

    石英諧振式壓力傳感器:高精度壓力測量的理想選擇

    ? ? ? 萬分級精度、卓越寬溫域性能、極佳長期穩定性,石英諧振技術正成為高要求壓力測量應用的首選。 ? ? ? 在工業自動化、航空航天、能源勘探等高端應用領域,壓力測量的精確性與可靠
    的頭像 發表于 10-15 11:45 ?951次閱讀

    溫度壓力一體化傳感器在工業自動化中的廣泛應用

    監測這些設備的溫度壓力變化,為生產過程提供準確的數據支持。例如,在煉油過程中,通過監測反應釜內的溫度壓力,可以確保反應在適宜的條件下進行
    的頭像 發表于 10-09 10:30 ?404次閱讀
    <b class='flag-5'>溫度</b><b class='flag-5'>壓力</b>一體化傳感器在工業自動化中的廣泛應用

    HPSD3900:差壓與絕壓雙測量,賦能高精度航空壓力傳感

    在航空領域,壓力測量是飛行控制與安全的關鍵技術之一。飛機空速管(又稱皮托管)作為最早且廣泛使用的壓力式流速傳感裝置,通過捕捉氣流的動壓與靜壓,結合膜盒機械結構實現空速、高度與升降速度的
    的頭像 發表于 08-26 12:04 ?584次閱讀
    HPSD3900:差壓與絕壓雙<b class='flag-5'>測量</b>,賦能高精度航空<b class='flag-5'>壓力</b>傳感

    觸針式輪廓儀 | 臺階儀 | 納米級多臺階高度的精準測量

    臺階高度作為納米結構的關鍵參數,其測量精度直接影響相關研究與應用。本文利用觸針式輪廓儀對三臺階高度樣品進行測量與表征的方法。原始
    的頭像 發表于 07-22 09:52 ?721次閱讀
    觸針式輪廓儀 | 臺階儀 | 納米級多臺階<b class='flag-5'>高度</b>的精準<b class='flag-5'>測量</b>

    零知開源——STM32F4結合BMP581氣壓傳感器實現ST7789中文顯示教程

    581傳感器數據采集。通過U8g2庫實現高質量中文渲染,混合Adafruit_GFX進行高效數據顯示,實時展示溫度壓力高度數據。教程詳細介紹了硬件連接方案(I2C/SPI接口)、軟
    的頭像 發表于 07-09 09:21 ?1830次閱讀
    零知開源——STM32F4結合<b class='flag-5'>BMP</b>581氣壓傳感器實現ST7789中文顯示教程

    如何精準測量PCB溫度

    近年來,中國電子信息產業發展快速,各類電子產品生產需求不斷攀升,線路板(PCB)作為電子產品的關鍵組成部分,其質量直接影響整機性能與壽命。為了保證產品良率與線路板的制作精度,需對線路板進行高精度的溫度測量。
    的頭像 發表于 07-08 16:02 ?891次閱讀

    Holtek壓力變送器應用方案介紹

    工業自動化環境中,變送器進行各種物理量(如溫度、壓力等)的測量和遠距離傳輸,是工業自動化中不可或缺的組成部分。壓力變送器是將
    的頭像 發表于 06-13 10:54 ?1165次閱讀
    Holtek<b class='flag-5'>壓力</b>變送器應用方案介紹

    MS4525DO-TP3AJ030APF壓力傳感器測量氣壓高度

    MS4525DO-TP3AJ030APF傳感器10kHz的高頻采樣能力可捕捉到氣壓的瞬時波動,配合I2C數字輸出接口,能實時傳輸數據至飛控系統。在氣壓高度的的實測中發現,其海拔高度分辨率可達0.1米。傳感器經過-40℃至125℃的寬溫標定,內部集成的
    的頭像 發表于 06-03 10:19 ?977次閱讀
    MS4525DO-TP3AJ030APF<b class='flag-5'>壓力</b>傳感器<b class='flag-5'>測量</b>氣壓<b class='flag-5'>高度</b>

    SDP810傳感器信號補償專題之高度修正(二)

    大氣壓隨海拔升高而降低。SDP傳感器校準條件為海拔425米高度、大氣壓966毫巴。該傳感器基于微熱測量原理,使其成為本質質量流量傳感器。因此使用SDP進行質量流量測量時無需
    的頭像 發表于 05-19 13:26 ?685次閱讀
    SDP810傳感器信號補償專題之<b class='flag-5'>高度</b>修正(二)

    四探針電極在多功能壓力測量系統中的原理與應用

    一、引言 在多功能壓力測量系統里,四探針電極以其獨特測量原理,助力獲取材料電學性能與壓力的關聯數據。它在材料科學、電子工程等領域應用廣泛,有力推動了對材料在
    的頭像 發表于 03-27 14:04 ?1087次閱讀
    四探針電極在多功能<b class='flag-5'>壓力</b><b class='flag-5'>測量</b>系統中的原理與應用

    唯一國產MEMS電容式氣壓計芯片

    厘米。該傳感器模塊包括高線性壓力傳感器和超低功率24位,內部具有校準系數。它提供了一個精確的24 位數字壓力溫度值。一個高分辨率的溫度輸出允許實現一個
    發表于 03-11 10:11