TY桃園智造感測器教學庫
感測器教學庫/環境感測器/雨滴感測器
BATCH 02 · 已發布

SENSOR / RAINDROP

雨滴感測器(AO/DO)用小水滴建立類比濕度與門檻實驗

雨滴感測器以導電感測板偵測水滴,提供 AO 類比輸出與可調整的 DO 數位輸出。它適合做雨滴警示與水滴互動,但不等於校準過的降雨量測站。

入門45 分鐘Arduino UNO
READYDATA
SIGNAL STABLE
雨滴感測器(AO/DO)
VCC / 5VGND / GND
01 / PREPARE

課前準備

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

學習目標

  1. 觀察雨滴數量與 AO 讀值的關係。
  2. 使用低電位有效的 DO 判斷水滴。
  3. 建立水滴測試、門檻調整與擦乾保養流程。

材料清單

1 個雨滴感測器模組確認感測板、AO、DO 與電位器。
1 組Arduino UNO本例 AO=A0、DO=D2。
1 組滴管與紙巾控制水滴數量並保持接頭乾燥。
適用對象國中生活科技與 Arduino 初學者
建議課時45 分鐘
示範平台Arduino UNO
02 / HOW IT WORKS

小水滴也會改變電阻

感測板上的水滴形成導電路徑,讓 AO 改變;DO 由電位器設定的比較門檻決定。

01

設定腳位

使用一個類比腳與一個數位腳。

02

逐滴測試

由少到多增加水滴並記錄 AO。

03

判斷事件

用 DO 或程式門檻判斷是否有雨滴。

DISTANCE FORMULAdropDetected = digitalRead(DO) == LOW

低電位有效是常見設定,但不同模組仍應先實測。

03 / WIRING

接線配置

雨滴板與雨水板原理相近;本篇刻意使用逐滴測試,讓學生看見讀值變化而不是只看亮燈。

MODULE雨滴感測器(AO/DO)VCCGNDAODO
CONTROLArduino UNO5VGNDA0D2
模組腳位接到控制板訊號方向檢查重點
VCC5V電源依模組標示。
GNDGND地線共地。
AOA0類比輸出對應 ANALOG_PIN。
DOD2數位輸出對應 DIGITAL_PIN。
✓ WIRING ROWS ALIGNED

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

04 / BLOCK GUIDE

本課會用到的積木

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

雨滴感測器初始化ANALOG_PIN A0DIGITAL_PIN 2
BLOCK 01playrobot_raindrop_setup

雨滴感測器初始化

設定 AO/DO 腳位

位置:感測器 → 環境感測器 → 雨滴感測器
ANALOG_PIN
A0感測板 AO。
DIGITAL_PIN
2模組 DO。
雨滴感測器類比值
BLOCK 02playrobot_raindrop_analog

雨滴感測器類比值

讀取水滴造成的類比變化

位置:感測器 → 環境感測器 → 雨滴感測器
雨滴感測器是否有雨滴
BLOCK 03playrobot_raindrop_digital

雨滴感測器是否有雨滴

讀取門檻判斷

位置:感測器 → 環境感測器 → 雨滴感測器
序列埠列印
BLOCK 04serial_println

序列埠列印

記錄逐滴測試資料

位置:輸出
05 / BLOCK EXAMPLE

雨滴數量與讀值實驗

每增加一滴水就記錄一次 AO,並觀察 DO 何時切換。

桃園版 BLOCKLY / WORKSPACE● BLOCK STYLE
Arduino 程式
初始化
雨滴感測器初始化(A0、D2)playrobot_raindrop_setup
重複執行arduino_delay
雨滴感測器類比值playrobot_raindrop_analog
雨滴感測器是否有雨滴?playrobot_raindrop_digital
序列埠列印arduino_serial_print
重複執行
雨滴感測器初始化(A0、D2)playrobot_raindrop_setup
重複執行arduino_delay
雨滴感測器類比值playrobot_raindrop_analog
雨滴感測器是否有雨滴?playrobot_raindrop_digital
序列埠列印arduino_serial_print
X / 010Y / 024

組合步驟

01
固定水滴大小

使用同一支滴管逐滴加入。

為什麼:讓資料比較更公平。
02
找切換點

記下 DO 從否變成是的 AO 範圍。

為什麼:數位輸出是類比訊號的門檻化結果。
03
擦乾重測

每輪測試後清除水膜。

為什麼:殘水會造成下一輪起始值不同。
積木使用重點先辨認積木是「回傳值」還是「執行動作」,再放到正確的拼接位置。

playrobot_raindrop_setup設定 AO/DO 腳位

EXAMPLE DOWNLOAD下載後即可練習

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

預期觀察結果

測試情境可能讀值判讀
水滴變多AO 通常改變導電面積與濕潤程度改變。
超過電位器門檻DO 切換比較器將連續訊號轉成數位事件。
06 / CODE EXPLAINED

範例程式逐段解說

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

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

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

void loop() {
  Serial.print(analogRead(RAINDROP_AO));
  Serial.print(", drop=");
  Serial.println(digitalRead(RAINDROP_DO) == LOW);
  delay(300);
}
SELF STUDY GUIDE先看哪一段、為什麼?
01
先載入函式庫與建立裝置// 雨滴感測器(AO/DO) library

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

02
把程式腳位對回接線表pinMode(RAINDROP_DO, INPUT);

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

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

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

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

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

05
輸出結果並控制取樣速度Serial.print(analogRead(RAINDROP_AO));

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

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

常見問題與故障排除

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

ERR 01

滴水後沒有變化

先檢查:確認水滴落在感測銅箔,不是塑膠外殼。

處理方式:檢查 AO 接線與感測板是否有斷線。

ERR 02

DO 太敏感

先檢查:觀察電位器與環境水氣。

處理方式:調整門檻並建立乾燥基準。

ERR 03

測試後讀值不回復

先檢查:感測板是否仍有水膜。

處理方式:擦乾、通風,必要時短暫斷電。

08 / NEXT MISSION

延伸挑戰

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

L1

判斷一滴水

題目:讓 LED 在 DO 切換時亮起。

解題方向

這題要延伸「雨滴感測器初始化」的基本讀值:先保留已驗證的接線與初始化,再把題目要求的資料處理加在重複執行區。把結果接到題目指定的輸出元件。

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

建立濕潤等級

題目:用 AO 分成乾、少量、多量三區。

解題方向

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

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

取樣防誤判

題目:加入多次平均與延遲解除機制。

解題方向

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

  1. 先匯入本頁 Blockly 範例,確認感測器在沒有加入挑戰功能時能穩定讀值。
  2. 保留 playrobot_raindrop_setup,先把讀值送到序列埠,建立正常範圍或基準值。
  3. 依題目「加入多次平均與延遲解除機制。」加入比較、分類、累計或時間判斷;門檻要用實測資料決定,不要直接猜一個數字。
  4. 用至少三種不同情境測試,記錄輸入、程式判斷與輸出結果,再修正門檻或取樣間隔。
完成檢核:完成後應能指出:哪一個積木取得資料、哪一段負責判斷或換算、先把資料整理成可觀察的序列埠或表格結果是否在所有測試情境都正確反應。
教師快速檢核4 POINT CHECK
  • 能用 AO 觀察水滴造成的連續變化。
  • 能使用 DO 判斷事件。
  • 能提出防水與擦乾措施。
09 / EVIDENCE資料來源與版本展開查看 +
官方教學
Gravity analog moisture sensorDFRobot

參考類比水滴/蒸氣感測板的導電原理與非防水提醒。

桃園版 Blockly
桃園版 Blockly 雨滴積木桃園版 Blockly

對照 raindrop setup、analog 與 digital 積木。

LOCAL
LAST REVIEWED / 2026-08-13

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

返回教學庫 →