TY桃園智造感測器教學庫
感測器教學庫/環境感測器/Gravity 溶解氧(DO)
BATCH 03 · 已完成

SENSOR / DISSOLVEDOXYGEN

Gravity 溶解氧(DO)感測器從類比電壓開始理解水中溶解氧量測

Gravity 類比溶解氧模組以探頭與訊號板量測水中的溶解氧,桃園版 Blockly 提供原始 ADC 與電壓積木。本課先練習讀值與校準概念,不把未校準的電壓直接當成 mg/L。

入門45 分鐘Arduino UNO(類比輸入)
READYDATA
SIGNAL STABLE
Gravity 溶解氧(DO)感
VCC / 5VGND / GND
01 / PREPARE

課前準備

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

學習目標

  1. 理解溶解氧探頭與類比訊號板的角色。
  2. 使用 DO 初始化、原始值與電壓積木。
  3. 知道溫度、鹽度與校準會影響 DO 結果。

材料清單

1 組Gravity 溶解氧套件探頭、訊號板與連接線要配套。
1 塊Arduino UNO訊號板 AO 接 A0。
依課程清水與校準溶液校準溶液請依產品手冊準備。
適用對象國中生活科技與 Arduino 初學者
建議課時45 分鐘
示範平台Arduino UNO(類比輸入)
02 / HOW IT WORKS

探頭反應被訊號板轉成類比電壓

電化學溶解氧探頭在水中產生與氧濃度相關的電訊號,Gravity 訊號板把它轉成 Arduino 可讀的類比電壓。真正的 mg/L 需要依探頭、溫度、鹽度與校準資料換算。

01

確認探頭

檢查探頭膜、電解液與接頭狀態。

02

讀取類比

先讀 raw,再觀察 voltage,建立穩定基準。

03

談校準

比較空氣飽和與零氧條件,理解校準端點。

DISTANCE FORMULAvoltage = analogRead(A0) × Vref / 1023

電壓只是訊號板輸出;要換算 mg/L 必須使用產品校準方法。

03 / WIRING

接線配置

Gravity DO 訊號板的 AO 接 Arduino 類比腳;探頭要依套件說明安裝,不可把裸探頭直接接到 Arduino。

MODULEGravity 溶解氧(DO)感VCCGNDAO
CONTROLArduino UNO(類比輸入)5VGNDA0
模組腳位接到控制板訊號方向檢查重點
VCC5V電源依 SEN0237-A 訊號板規格供電。
GNDGND地線訊號板與 UNO 共地。
AOA0類比輸出原始 DO 訊號。
✓ WIRING ROWS ALIGNED

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

04 / BLOCK GUIDE

本課會用到的積木

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

Gravity 溶解氧初始化PIN A0
BLOCK 01playrobot_do_setup

Gravity 溶解氧初始化

設定 AO 類比輸入腳。

位置:感測器 → 環境感測器 → Gravity 溶解氧(DO)
PIN
A0DO 訊號板 AO 接 A0。
Gravity 溶解氧原始值
BLOCK 02playrobot_do_raw

Gravity 溶解氧原始值

讀取 ADC 原始 count。

位置:感測器 → 環境感測器 → Gravity 溶解氧(DO)
Gravity 溶解氧電壓(V)
BLOCK 03playrobot_do_voltage

Gravity 溶解氧電壓(V)

把 ADC count 換算成教學用電壓。

位置:感測器 → 環境感測器 → Gravity 溶解氧(DO)
05 / BLOCK EXAMPLE

比較清水攪拌前後的 DO 訊號

讀取 raw 與 voltage,觀察攪拌水面增加氣液接觸時訊號的變化。

桃園版 BLOCKLY / WORKSPACE● BLOCK STYLE
Arduino 程式
初始化
Gravity 溶解氧初始化(A0)playrobot_do_setup
重複執行arduino_delay
Gravity 溶解氧電壓(V)playrobot_do_voltage
序列埠列印arduino_serial_print
重複執行
Gravity 溶解氧初始化(A0)playrobot_do_setup
重複執行arduino_delay
Gravity 溶解氧電壓(V)playrobot_do_voltage
序列埠列印arduino_serial_print
X / 010Y / 024

組合步驟

01
先讓讀值穩定

探頭依手冊放入水中並等待。

為什麼:電化學探頭需要穩定時間。
02
記錄基準

每秒列印 raw 與 voltage。

為什麼:先知道目前訊號範圍,再談校準。
03
改變攪拌

輕輕攪拌水面並比較讀值。

為什麼:理解氧氣交換與訊號變化的關係。
積木使用重點先辨認積木是「回傳值」還是「執行動作」,再放到正確的拼接位置。

playrobot_do_setup設定 AO 類比輸入腳。

EXAMPLE DOWNLOAD下載後即可練習

下載桃園版 Blockly 專案或對應的文字程式。

預期觀察結果

測試情境可能讀值判讀
探頭尚未穩定讀值慢慢漂移探頭與水樣仍在平衡。
水面攪拌電壓可能改變氣液交換與溶氧狀態被改變。
06 / CODE EXPLAINED

範例程式逐段解說

這段程式把「Gravity 溶解氧(DO)感測器」的實體接線、桃園版 Blockly 積木與 Arduino 執行流程接在一起。先對照腳位,再看初始化、讀值、輸出與等待的順序;每一步都可以回到本頁的積木範例實測。

GENERATED LOGIC / EXCERPT積木背後的程式碼收合程式碼 −
TAOYUAN BLOCKLY / ARDUINO C++READ ONLY
const int DO_PIN = A0;

void setup() {
  Serial.begin(115200);
  pinMode(DO_PIN, INPUT);
}

void loop() {
  int raw = analogRead(DO_PIN);
  float voltage = raw * 5.0f / 1023.0f;
  Serial.print("raw=");
  Serial.print(raw);
  Serial.print(", voltage=");
  Serial.println(voltage, 3);
  delay(1000);
}
SELF STUDY GUIDE先看哪一段、為什麼?
01
先載入函式庫與建立裝置// Gravity 溶解氧(DO)感測器 library

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

02
把程式腳位對回接線表const int DO_PIN = A0;

本頁接線是 VCC → 5V、GND → GND、AO → A0。程式常數、積木欄位與實體線材必須使用同一組設定;若改了其中一邊,另外兩邊也要一起改。

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

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

04
在 loop 更新並取得資料void loop() {

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

05
輸出結果並控制取樣速度Serial.print("raw=");

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

自學檢查
  • 實體接線:VCC → 5V、GND → GND、AO → A0。
  • 主要積木:playrobot_do_setup;先確認它是回傳值還是執行動作。
  • 本課板子:Arduino UNO(類比輸入);更換控制板或模組版本時,電壓、腳位與函式庫都要重新確認。
07 / DEBUG

常見問題與故障排除

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

ERR 01

讀值固定為 0

先檢查:確認 AO、GND 與訊號板供電。

處理方式:先用電表量 AO,再確認探頭接頭。

ERR 02

數值漂移

先檢查:探頭是否剛安裝或膜狀態不良。

處理方式:依手冊浸泡、極化與校準,等待穩定。

ERR 03

想直接顯示 mg/L

先檢查:是否有校準與溫度補償資料。

處理方式:先保留 raw/voltage,完成校準後再建立換算公式。

08 / NEXT MISSION

延伸挑戰

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

L1

DO 電壓表

題目:列印 raw 與 voltage。

解題方向

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

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

攪拌實驗

題目:比較靜置與攪拌水樣的變化。

解題方向

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

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

校準紀錄

題目:設計空氣飽和與零氧兩點校準表。

解題方向

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

  1. 先匯入本頁 Blockly 範例,確認感測器在沒有加入挑戰功能時能穩定讀值。
  2. 保留 playrobot_do_setup,先把讀值送到序列埠,建立正常範圍或基準值。
  3. 依題目「設計空氣飽和與零氧兩點校準表。」加入比較、分類、累計或時間判斷;門檻要用實測資料決定,不要直接猜一個數字。
  4. 用至少三種不同情境測試,記錄輸入、程式判斷與輸出結果,再修正門檻或取樣間隔。
完成檢核:完成後應能指出:哪一個積木取得資料、哪一段負責判斷或換算、先把資料整理成可觀察的序列埠或表格結果是否在所有測試情境都正確反應。
教師快速檢核4 POINT CHECK
  • 能分辨探頭、訊號板與 Arduino 類比輸入。
  • 能使用 raw 與 voltage 積木。
  • 能說明 mg/L 必須依校準與補償換算。
09 / EVIDENCE資料來源與版本展開查看 +
官方資料
Gravity Analog Dissolved Oxygen SensorDFRobot

確認 SEN0237-A 的探頭、類比訊號板與 Arduino 使用方式。

桃園版 Blockly
桃園版 Blockly 溶解氧積木桃園版 Blockly

確認 DO setup、raw、voltage 與 A0 類比腳位。

LOCAL
LAST REVIEWED / 2026-08-13

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

返回教學庫 →