TY桃園智造感測器教學庫
感測器教學庫/環境感測器/MS5803-14BA 壓力/高度
BATCH 01 · 已發布

SENSOR / MS5803

MS5803-14BA 壓力/高度感測器用高解析度壓力資料觀察高度與水深概念

MS5803-14BA 是高解析度數位壓力感測器,支援 I2C/SPI 類型的模組應用。桃園版 Blockly 以初始化、更新、壓力、溫度與海拔高度積木組成教學流程。

入門45 分鐘Arduino UNO(I2C,MS5803_14 Library)
READYDATA
SIGNAL STABLE
MS5803-14BA 壓力/高
VCC / 依模組規格GND / GND
01 / PREPARE

課前準備

先確認這一課要學會什麼,以及桌面上需要哪些材料。

學習目標

  1. 理解絕對壓力與高度估算的關係。
  2. 使用 MS5803-14BA 的初始化與更新積木。
  3. 比較壓力 hPa、Pa 與估算高度,討論水深應用限制。

材料清單

1 個MS5803-14BA 壓力感測器模組確認是 14BA 型號與模組的 I2C/SPI 接法。
1 組Arduino UNO 與 USB 線桃園版積木範例使用 I2C 0x76。
至少 2 處不同高度的固定位置先以空氣壓力做乾式安全實驗。
適用對象國中生活科技與 Arduino 初學者
建議課時45 分鐘
示範平台Arduino UNO(I2C,MS5803_14 Library)
02 / HOW IT WORKS

壓力資料要先更新,再做換算

MS5803 將壓力與溫度轉成數位資料;海拔高度是依目前壓力與海平面基準估算,並不是感測器直接量出一個固定高度。

01

通過初始化與 CRC

啟動 MS5803 library 並確認感測器回應。

02

更新資料

讀取最新溫度與壓力。

03

選擇單位或換算

用 hPa、Pa 或海平面氣壓換算高度。

DISTANCE FORMULAaltitude ≈ 44330 × (1 − (pressure / seaLevelPressure)^0.1903)

14BA 代表約 1 bar 等級的壓力範圍;水深實驗必須使用適合液體壓力、密封與安全規格的完整系統。

03 / WIRING

接線配置

本篇先以乾式空氣壓力觀察為主;請勿把裸露電子模組直接放入水中。

MODULEMS5803-14BA 壓力/高VCCGNDSDASCL
CONTROLArduino UNO(I2C,MS5803_14 Library)依模組規格GNDA4 / SDAA5 / SCL
模組腳位接到控制板訊號方向檢查重點
VCC依模組規格電源確認模組是否含穩壓與電平轉換。
GNDGND地線建立共同地線。
SDAA4 / SDAI2C 資料桃園版產生器以 I2C 0x76 為主。
SCLA5 / SCLI2C 時脈UNO 的 SCL。
✓ WIRING ROWS ALIGNED

已將 4 條線路依同一筆資料逐列對齊;電壓仍須依手上模組版本確認。

04 / BLOCK GUIDE

本課會用到的積木

積木名稱與型別以桃園版 Blockly 現行程式為準,不以通用積木替代。

MS5803-14BA 初始化
BLOCK 01playrobot_ms5803_setup

MS5803-14BA 初始化

啟動感測器並進行初始化檢查

位置:感測器 → 環境感測器 → MS5803-14BA
MS5803-14BA 更新資料
BLOCK 02playrobot_ms5803_update

MS5803-14BA 更新資料

取得最新壓力與溫度

位置:感測器 → 環境感測器 → MS5803-14BA
MS5803-14BA 溫度(°C)
BLOCK 03playrobot_ms5803_temperature

MS5803-14BA 溫度(°C)

讀取溫度

位置:感測器 → 環境感測器 → MS5803-14BA
MS5803-14BA 壓力(hPa)
BLOCK 04playrobot_ms5803_pressure_hpa

MS5803-14BA 壓力(hPa)

讀取 hPa/mbar 壓力

位置:感測器 → 環境感測器 → MS5803-14BA
MS5803-14BA 壓力(Pa)
BLOCK 05playrobot_ms5803_pressure_pa

MS5803-14BA 壓力(Pa)

讀取 Pa 壓力

位置:感測器 → 環境感測器 → MS5803-14BA
MS5803-14BA 海拔高度(m)SEA_LEVEL_PRESSURE 1013.25
BLOCK 06playrobot_ms5803_altitude

MS5803-14BA 海拔高度(m)

用海平面氣壓估算高度

位置:感測器 → 環境感測器 → MS5803-14BA
SEA_LEVEL_PRESSURE
1013.25輸入海平面標準氣壓 hPa。
05 / BLOCK EXAMPLE

用氣壓觀察上下樓層

把 MS5803 放在不同高度,更新後比較壓力與估算高度。

桃園版 BLOCKLY / WORKSPACE● BLOCK STYLE
Arduino 程式
初始化
MS5803-14BA 初始化playrobot_ms5803_setup
重複執行arduino_delay
MS5803-14BA 更新資料playrobot_ms5803_update
MS5803-14BA 壓力(hPa)playrobot_ms5803_pressure_hpa
MS5803-14BA 海拔高度(m,1013.25)playrobot_ms5803_altitude
序列埠列印結果arduino_serial_print
重複執行
MS5803-14BA 初始化playrobot_ms5803_setup
重複執行arduino_delay
MS5803-14BA 更新資料playrobot_ms5803_update
MS5803-14BA 壓力(hPa)playrobot_ms5803_pressure_hpa
MS5803-14BA 海拔高度(m,1013.25)playrobot_ms5803_altitude
序列埠列印結果arduino_serial_print
X / 010Y / 024

組合步驟

01
確認已初始化

先觀察 initialized 積木或序列埠訊息。

為什麼:MS5803 需要通過初始化與 CRC 檢查。
02
固定基準

同一時段使用相同海平面氣壓基準。

為什麼:否則高度差可能只是基準不同。
03
比較趨勢

上下移動感測器,觀察壓力與高度的相反變化。

為什麼:學生可以從資料看到大氣壓力隨高度變化。
積木使用重點先辨認積木是「回傳值」還是「執行動作」,再放到正確的拼接位置。

playrobot_ms5803_setup啟動感測器並進行初始化檢查

預期觀察結果

測試情境可能讀值判讀
感測器移到較高處壓力通常略降,估算高度略升高度公式反映大氣壓力變化。
模組未密封卻放入水中可能損壞且資料失真水深量測需要專用密封與壓力介面。
06 / CODE EXPLAINED

範例程式逐段解說

這段程式把「MS5803-14BA 壓力/高度感測器」的實體接線、桃園版 Blockly 積木與 Arduino 執行流程接在一起。先對照腳位,再看初始化、讀值、輸出與等待的順序;每一步都可以回到本頁的積木範例實測。

GENERATED LOGIC / EXCERPT積木背後的程式碼收合程式碼 −
TAOYUAN BLOCKLY / ARDUINO C++READ ONLY
#include <Wire.h>
#include <MS5803_14.h>

MS_5803 sensor(512);
bool initialized = false;
float pressureHpa = 0.0f;

void setup() {
  Serial.begin(115200);
  Wire.begin();
  initialized = sensor.initializeMS_5803(false);
}

void loop() {
  if (!initialized) return;
  sensor.readSensor();
  pressureHpa = sensor.pressure();
  Serial.println(pressureHpa);
  delay(500);
}
SELF STUDY GUIDE先看哪一段、為什麼?
01
先載入函式庫與建立裝置#include <Wire.h>

函式庫提供桃園版 Blockly 產生器所需的底層功能;若這裡的函式庫或物件名稱不對,後面的 playrobot_ms5803_setup 就算接線正確也無法使用。

02
把程式腳位對回接線表// VCC → 依模組規格、GND → GND、SDA → A4 / SDA、SCL → A5 / SCL

本頁接線是 VCC → 依模組規格、GND → GND、SDA → A4 / SDA、SCL → A5 / SCL。程式常數、積木欄位與實體線材必須使用同一組設定;若改了其中一邊,另外兩邊也要一起改。

03
在 setup 只做一次初始化void setup() {

啟動序列埠、I²C/UART 或感測器初始化通常只需要做一次,所以要放在「初始化」區,不要每一圈重複建立裝置。這也對應範例中的啟動積木。

04
在 loop 更新並取得資料float pressureHpa = 0.0f;

重複執行區先讓感測器更新,再讀取 MS5803-14BA 初始化。若元件有 data ready、可用性或逾時條件,先判斷狀態再使用數值,避免把無效資料當成真實測量。

05
輸出結果並控制取樣速度if (!initialized) return;

先把原始值、單位或狀態送到序列埠,才能和預期結果比較;等待時間則決定更新速度。若看到亂碼,先檢查鮑率;若數值跳動,先增加合理的取樣間隔或做校正。

自學檢查
  • 實體接線:VCC → 依模組規格、GND → GND、SDA → A4 / SDA、SCL → A5 / SCL。
  • 主要積木:playrobot_ms5803_setup;先確認它是回傳值還是執行動作。
  • 本課板子:Arduino UNO(I2C,MS5803_14 Library);更換控制板或模組版本時,電壓、腳位與函式庫都要重新確認。
07 / DEBUG

常見問題與故障排除

先從「電源、接線、腳位、物體」四個方向檢查,再修改程式。

ERR 01

initialized 為否

先檢查:確認 I2C 接線、供電與模組型號。

處理方式:重新檢查 SDA/SCL、位址與 MS5803_14 library。

ERR 02

壓力值單位混淆

先檢查:比較 hPa 與 Pa 的數值大小。

處理方式:hPa 乘以 100 才是 Pa,顯示時標明單位。

ERR 03

高度值漂移

先檢查:確認海平面基準與當時天氣。

處理方式:使用同一基準比較相對變化,不要把估算值當作絕對高度。

08 / NEXT MISSION

延伸挑戰

從顯示數值,逐步走向條件判斷、燈號回饋與雷達專題。

L1

讀取壓力

題目:列印 MS5803 的 hPa 與 Pa,確認換算關係。

解題方向

這題要延伸「MS5803-14BA 初始化」的基本讀值:先保留已驗證的接線與初始化,再把題目要求的資料處理加在重複執行區。先把資料整理成可觀察的序列埠或表格結果。

  1. 先匯入本頁 Blockly 範例,確認感測器在沒有加入挑戰功能時能穩定讀值。
  2. 保留 playrobot_ms5803_setup,先把讀值送到序列埠,建立正常範圍或基準值。
  3. 依題目「列印 MS5803 的 hPa 與 Pa,確認換算關係。」加入比較、分類、累計或時間判斷;門檻要用實測資料決定,不要直接猜一個數字。
  4. 用至少三種不同情境測試,記錄輸入、程式判斷與輸出結果,再修正門檻或取樣間隔。
完成檢核:完成後應能指出:哪一個積木取得資料、哪一段負責判斷或換算、先把資料整理成可觀察的序列埠或表格結果是否在所有測試情境都正確反應。
L2

樓梯高度觀察

題目:在兩個樓層記錄壓力差與估算高度差。

解題方向

這題要延伸「MS5803-14BA 初始化」的基本讀值:先保留已驗證的接線與初始化,再把題目要求的資料處理加在重複執行區。先把資料整理成可觀察的序列埠或表格結果。

  1. 先匯入本頁 Blockly 範例,確認感測器在沒有加入挑戰功能時能穩定讀值。
  2. 保留 playrobot_ms5803_setup,先把讀值送到序列埠,建立正常範圍或基準值。
  3. 依題目「在兩個樓層記錄壓力差與估算高度差。」加入比較、分類、累計或時間判斷;門檻要用實測資料決定,不要直接猜一個數字。
  4. 用至少三種不同情境測試,記錄輸入、程式判斷與輸出結果,再修正門檻或取樣間隔。
完成檢核:完成後應能指出:哪一個積木取得資料、哪一段負責判斷或換算、先把資料整理成可觀察的序列埠或表格結果是否在所有測試情境都正確反應。
L3

設計壓力實驗

題目:提出一個不接觸液體、可重複驗證壓力變化的實驗。

解題方向

這題要延伸「MS5803-14BA 初始化」的基本讀值:先保留已驗證的接線與初始化,再把題目要求的資料處理加在重複執行區。先把資料整理成可觀察的序列埠或表格結果。

  1. 先匯入本頁 Blockly 範例,確認感測器在沒有加入挑戰功能時能穩定讀值。
  2. 保留 playrobot_ms5803_setup,先把讀值送到序列埠,建立正常範圍或基準值。
  3. 依題目「提出一個不接觸液體、可重複驗證壓力變化的實驗。」加入比較、分類、累計或時間判斷;門檻要用實測資料決定,不要直接猜一個數字。
  4. 用至少三種不同情境測試,記錄輸入、程式判斷與輸出結果,再修正門檻或取樣間隔。
完成檢核:完成後應能指出:哪一個積木取得資料、哪一段負責判斷或換算、先把資料整理成可觀察的序列埠或表格結果是否在所有測試情境都正確反應。
教師快速檢核4 POINT CHECK
  • 能說明絕對壓力與估算高度的關係。
  • 能完成初始化、更新與單位選擇。
  • 能指出水深量測需要額外的密封與安全設計。
09 / EVIDENCE資料來源與版本展開查看 +
LAST REVIEWED / 2026-08-13

本頁使用零件圖鑑標準範本,內容可由網站編輯模式持續維護。

返回教學庫 →