學習目標
- ✓理解溶解氧探頭與類比訊號板的角色。
- ✓使用 DO 初始化、原始值與電壓積木。
- ✓知道溫度、鹽度與校準會影響 DO 結果。
SENSOR / DISSOLVEDOXYGEN
Gravity 類比溶解氧模組以探頭與訊號板量測水中的溶解氧,桃園版 Blockly 提供原始 ADC 與電壓積木。本課先練習讀值與校準概念,不把未校準的電壓直接當成 mg/L。
先確認這一課要學會什麼,以及桌面上需要哪些材料。
電化學溶解氧探頭在水中產生與氧濃度相關的電訊號,Gravity 訊號板把它轉成 Arduino 可讀的類比電壓。真正的 mg/L 需要依探頭、溫度、鹽度與校準資料換算。
檢查探頭膜、電解液與接頭狀態。
先讀 raw,再觀察 voltage,建立穩定基準。
比較空氣飽和與零氧條件,理解校準端點。
電壓只是訊號板輸出;要換算 mg/L 必須使用產品校準方法。
Gravity DO 訊號板的 AO 接 Arduino 類比腳;探頭要依套件說明安裝,不可把裸探頭直接接到 Arduino。
| 模組腳位 | 接到控制板 | 訊號方向 | 檢查重點 |
|---|---|---|---|
| VCC | 5V | 電源 | 依 SEN0237-A 訊號板規格供電。 |
| GND | GND | 地線 | 訊號板與 UNO 共地。 |
| AO | A0 | 類比輸出 | 原始 DO 訊號。 |
已將 3 條線路依同一筆資料逐列對齊;電壓仍須依手上模組版本確認。
積木名稱與型別以桃園版 Blockly 現行程式為準,不以通用積木替代。
playrobot_do_setup設定 AO 類比輸入腳。
位置:感測器 → 環境感測器 → Gravity 溶解氧(DO)playrobot_do_raw讀取 ADC 原始 count。
位置:感測器 → 環境感測器 → Gravity 溶解氧(DO)playrobot_do_voltage把 ADC count 換算成教學用電壓。
位置:感測器 → 環境感測器 → Gravity 溶解氧(DO)讀取 raw 與 voltage,觀察攪拌水面增加氣液接觸時訊號的變化。
playrobot_do_setuparduino_delayplayrobot_do_voltagearduino_serial_printplayrobot_do_setuparduino_delayplayrobot_do_voltagearduino_serial_print探頭依手冊放入水中並等待。
為什麼:電化學探頭需要穩定時間。每秒列印 raw 與 voltage。
為什麼:先知道目前訊號範圍,再談校準。輕輕攪拌水面並比較讀值。
為什麼:理解氧氣交換與訊號變化的關係。playrobot_do_setup:設定 AO 類比輸入腳。
下載桃園版 Blockly 專案或對應的文字程式。
| 測試情境 | 可能讀值 | 判讀 |
|---|---|---|
| 探頭尚未穩定 | 讀值慢慢漂移 | 探頭與水樣仍在平衡。 |
| 水面攪拌 | 電壓可能改變 | 氣液交換與溶氧狀態被改變。 |
這段程式把「Gravity 溶解氧(DO)感測器」的實體接線、桃園版 Blockly 積木與 Arduino 執行流程接在一起。先對照腳位,再看初始化、讀值、輸出與等待的順序;每一步都可以回到本頁的積木範例實測。
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);
}// Gravity 溶解氧(DO)感測器 library函式庫提供桃園版 Blockly 產生器所需的底層功能;若這裡的函式庫或物件名稱不對,後面的 playrobot_do_setup 就算接線正確也無法使用。
const int DO_PIN = A0;本頁接線是 VCC → 5V、GND → GND、AO → A0。程式常數、積木欄位與實體線材必須使用同一組設定;若改了其中一邊,另外兩邊也要一起改。
void setup() {啟動序列埠、I²C/UART 或感測器初始化通常只需要做一次,所以要放在「初始化」區,不要每一圈重複建立裝置。這也對應範例中的啟動積木。
void loop() {重複執行區先讓感測器更新,再讀取 Gravity 溶解氧初始化。若元件有 data ready、可用性或逾時條件,先判斷狀態再使用數值,避免把無效資料當成真實測量。
Serial.print("raw=");先把原始值、單位或狀態送到序列埠,才能和預期結果比較;等待時間則決定更新速度。若看到亂碼,先檢查鮑率;若數值跳動,先增加合理的取樣間隔或做校正。
先從「電源、接線、腳位、物體」四個方向檢查,再修改程式。
先檢查:確認 AO、GND 與訊號板供電。
處理方式:先用電表量 AO,再確認探頭接頭。
先檢查:探頭是否剛安裝或膜狀態不良。
處理方式:依手冊浸泡、極化與校準,等待穩定。
先檢查:是否有校準與溫度補償資料。
處理方式:先保留 raw/voltage,完成校準後再建立換算公式。
從顯示數值,逐步走向條件判斷、燈號回饋與雷達專題。
題目:列印 raw 與 voltage。
這題要延伸「Gravity 溶解氧初始化」的基本讀值:先保留已驗證的接線與初始化,再把題目要求的資料處理加在重複執行區。先把資料整理成可觀察的序列埠或表格結果。
題目:比較靜置與攪拌水樣的變化。
這題要延伸「Gravity 溶解氧初始化」的基本讀值:先保留已驗證的接線與初始化,再把題目要求的資料處理加在重複執行區。先把資料整理成可觀察的序列埠或表格結果。
題目:設計空氣飽和與零氧兩點校準表。
這題要延伸「Gravity 溶解氧初始化」的基本讀值:先保留已驗證的接線與初始化,再把題目要求的資料處理加在重複執行區。先把資料整理成可觀察的序列埠或表格結果。
確認 SEN0237-A 的探頭、類比訊號板與 Arduino 使用方式。
確認 DO setup、raw、voltage 與 A0 類比腳位。