TY桃園智造感測器教學庫
感測器教學庫/環境感測器/Wind Sensor Rev. P 風速
BATCH 02 · 已發布

SENSOR / WINDREVP

Wind Sensor Rev. P 類比風速計認識 PTC 補償與較高供電需求

Wind Sensor Rev. P 是改良版熱線式風速計,使用 PTC 與環境溫度補償,並提供風速與溫度類比輸出。它需要外部 9–12V 供電,Arduino 只負責讀取符合電壓範圍的訊號。

入門45 分鐘Arduino UNO(類比輸入+獨立 9–12V 電源)
READYDATA
SIGNAL STABLE
Wind Sensor Rev.
V+ / 9–12V 外部電源GND / 外部 GND+Arduino GND
01 / PREPARE

課前準備

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

學習目標

  1. 理解 Rev. P 與 Rev. C 的供電與補償差異。
  2. 讀取風速輸出與溫度補償電壓。
  3. 建立外部電源、共地與 ADC 輸入的安全觀念。

材料清單

1 個Wind Sensor Rev. P確認使用 P5/P6 等實際版本。
1 組9–12V 穩定外部電源外部電源不可直接接 Arduino 5V。
1 組Arduino UNO 與跳線風速輸出與溫度輸出各接一個類比腳。
適用對象國中生活科技與 Arduino 初學者
建議課時45 分鐘
示範平台Arduino UNO(類比輸入+獨立 9–12V 電源)
02 / HOW IT WORKS

更高加熱電壓換來更寬風速範圍

Rev. P 以 PTC 熱敏元件與硬體溫度補償改善穩定性;風速輸出最高約 3.3V,但模組本身需要約 9–12V 供電。

01

獨立供電

用外部 9–12V 讓熱敏元件達到工作溫度。

02

共地讀取

外部電源 GND 與 Arduino GND 相連。

03

比較兩個輸出

分別讀風速電壓與溫度補償電壓。

DISTANCE FORMULAwindVoltage = analogRead(A0) × Vref / 1023

電壓轉風速仍需使用實際版本的校準曲線;溫度輸出也要依文件解讀。

03 / WIRING

接線配置

Rev. P 的 9–12V 電源與 Arduino 類比輸入必須分開處理;只把低電壓類比訊號接入 A0/A1。

MODULEWind Sensor Rev.V+GNDWind OutTemp Out
CONTROLArduino UNO(類比輸入+獨立 9–12V 電源)9–12V 外部電源外部 GND+Arduino GNDA0A1
模組腳位接到控制板訊號方向檢查重點
V+9–12V 外部電源電源依 Rev. P 版本規格,不能接 UNO 5V。
GND外部 GND+Arduino GND共同地沒有共地,ADC 讀值會失真。
Wind OutA0風速類比輸出輸出最高約 3.3V。
Temp OutA1溫度補償輸出先讀電壓,再依版本資料換算。
✓ WIRING ROWS ALIGNED

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

04 / BLOCK GUIDE

本課會用到的積木

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

Wind Sensor Rev. P 初始化
BLOCK 01playrobot_wind_rev_p_setup

Wind Sensor Rev. P 初始化

設定類比腳位與外部供電提醒

位置:感測器 → 環境感測器 → Wind Sensor Rev. P
Rev. P 風速原始值
BLOCK 02playrobot_wind_rev_p_raw

Rev. P 風速原始值

讀取風速 ADC 原始值

位置:感測器 → 環境感測器 → Wind Sensor Rev. P
Rev. P 風速電壓(V)
BLOCK 03playrobot_wind_rev_p_voltage

Rev. P 風速電壓(V)

讀取風速輸出電壓

位置:感測器 → 環境感測器 → Wind Sensor Rev. P
Rev. P 溫度電壓(V)
BLOCK 04playrobot_wind_rev_p_temperature_voltage

Rev. P 溫度電壓(V)

讀取溫度補償輸出

位置:感測器 → 環境感測器 → Wind Sensor Rev. P
05 / BLOCK EXAMPLE

同時觀察風速與溫度輸出

安全供電後,將兩個類比輸出列印到序列埠。

桃園版 BLOCKLY / WORKSPACE● BLOCK STYLE
Arduino 程式
初始化
Wind Sensor Rev. P 初始化playrobot_wind_rev_p_setup
等待 10000 毫秒arduino_delay
重複執行arduino_delay
Rev. P 風速電壓(V)playrobot_wind_rev_p_voltage
Rev. P 溫度電壓(V)playrobot_wind_rev_p_temperature_voltage
序列埠列印arduino_serial_print
重複執行
Wind Sensor Rev. P 初始化playrobot_wind_rev_p_setup
等待 10000 毫秒arduino_delay
重複執行arduino_delay
Rev. P 風速電壓(V)playrobot_wind_rev_p_voltage
Rev. P 溫度電壓(V)playrobot_wind_rev_p_temperature_voltage
序列埠列印arduino_serial_print
X / 010Y / 024

組合步驟

01
先檢查電壓

量測 Wind Out 與 Temp Out,再接 Arduino。

為什麼:避免超過 ADC 輸入範圍。
02
預熱感測器

通電後等待約 10 秒。

為什麼:熱線式元件需要達到工作狀態。
03
比較補償

在不同室溫下記錄兩個輸出。

為什麼:理解溫度補償輸出的用途。
積木使用重點先辨認積木是「回傳值」還是「執行動作」,再放到正確的拼接位置。

playrobot_wind_rev_p_setup設定類比腳位與外部供電提醒

預期觀察結果

測試情境可能讀值判讀
風扇加強風速輸出改變氣流帶走熱量的速度改變。
環境溫度改變溫度輸出也會改變它可協助解讀風速訊號的溫度影響。
06 / CODE EXPLAINED

範例程式逐段解說

這段程式把「Wind Sensor Rev. P 類比風速計」的實體接線、桃園版 Blockly 積木與 Arduino 執行流程接在一起。先對照腳位,再看初始化、讀值、輸出與等待的順序;每一步都可以回到本頁的積木範例實測。

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

void setup() {
  Serial.begin(115200);
  pinMode(WIND_PIN, INPUT);
  pinMode(TEMP_PIN, INPUT);
  delay(10000);
}

void loop() {
  float windVoltage = analogRead(WIND_PIN) * 5.0f / 1023.0f;
  float tempVoltage = analogRead(TEMP_PIN) * 5.0f / 1023.0f;
  Serial.print(windVoltage, 3);
  Serial.print(", ");
  Serial.println(tempVoltage, 3);
  delay(200);
}
SELF STUDY GUIDE先看哪一段、為什麼?
01
先載入函式庫與建立裝置// Wind Sensor Rev. P 類比風速計 library

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

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

本頁接線是 V+ → 9–12V 外部電源、GND → 外部 GND+Arduino GND、Wind Out → A0、Temp Out → A1。程式常數、積木欄位與實體線材必須使用同一組設定;若改了其中一邊,另外兩邊也要一起改。

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

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

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

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

05
輸出結果並控制取樣速度delay(10000);

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

自學檢查
  • 實體接線:V+ → 9–12V 外部電源、GND → 外部 GND+Arduino GND、Wind Out → A0、Temp Out → A1。
  • 主要積木:playrobot_wind_rev_p_setup;先確認它是回傳值還是執行動作。
  • 本課板子:Arduino UNO(類比輸入+獨立 9–12V 電源);更換控制板或模組版本時,電壓、腳位與函式庫都要重新確認。
07 / DEBUG

常見問題與故障排除

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

ERR 01

Arduino 讀值超過 5V 換算範圍

先檢查:確認接入的是 Wind Out/Temp Out 而非供電腳。

處理方式:先用電表確認輸出電壓,禁止把 9–12V 接到 ADC。

ERR 02

模組不工作

先檢查:是否提供 9–12V 外部電源。

處理方式:依 Rev. P 規格使用獨立供電,並與 Arduino 共地。

ERR 03

風速值漂移

先檢查:檢查預熱、環境溫度與校準。

處理方式:固定預熱時間並保留原始電壓,不直接套用別的版本曲線。

08 / NEXT MISSION

延伸挑戰

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

L1

安全接線檢查

題目:畫出供電線與訊號線,標註不能互接的腳位。

解題方向

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

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

輸出比較

題目:比較無風與風扇下的兩個輸出。

解題方向

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

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

溫度補償討論

題目:設計實驗觀察溫度輸出如何協助解讀風速。

解題方向

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

  1. 先匯入本頁 Blockly 範例,確認感測器在沒有加入挑戰功能時能穩定讀值。
  2. 保留 playrobot_wind_rev_p_setup,先把讀值送到序列埠,建立正常範圍或基準值。
  3. 依題目「設計實驗觀察溫度輸出如何協助解讀風速。」加入比較、分類、累計或時間判斷;門檻要用實測資料決定,不要直接猜一個數字。
  4. 用至少三種不同情境測試,記錄輸入、程式判斷與輸出結果,再修正門檻或取樣間隔。
完成檢核:完成後應能指出:哪一個積木取得資料、哪一段負責判斷或換算、把結果接到題目指定的輸出元件是否在所有測試情境都正確反應。
教師快速檢核4 POINT CHECK
  • 能說明 Rev. P 需要外部 9–12V。
  • 能辨識供電腳與低電壓訊號腳。
  • 能解釋溫度補償輸出的用途。
09 / EVIDENCE資料來源與版本展開查看 +
LAST REVIEWED / 2026-08-13

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

返回教學庫 →