Basic Tutorial for Arduino, 入門篇

【Arduino 入門教學】第 14 篇:2 腳火焰感測元件實作!原理介紹與火災聲光警報器專題

💡 實驗說明:什麼是 2 腳火焰感測元件?

2 腳火焰感測元件(Flame Sensor Element) 外觀類似黑色的 LED 燈泡,本質上是一種對特定光譜敏感的紅外線光敏元件(Phototransistor / Photo-diode)

  • 感測原理:火焰在燃燒時會輻射出波長介於 760nm ~ 1100nm 範圍內的紅外線。當該元件接收到此波段的紅外線時,其內部阻值會顯著降低(導通)。

  • 偵測範圍:感測角度約 60 度,對於打火機火焰等近距離火源相當敏感。

  • 分壓數位讀取:由於 2 腳元件本身只是個光敏感測頭,我們需要串聯一顆 10kΩ 電阻建立分壓電路,並將兩者中間的訊號輸出點連接至 Digital Pin 7(D7)。讓 Arduino 透過 digitalRead(7) 即時讀取高低電位變化;當偵測到火源時,再由 Digital Pin 13(D13) 輸出訊號驅動蜂鳴器發出警報!

⚠️ 安全警告:本實驗僅用於教學示範與專題驗證。測試時請保持安全距離(約 10~30cm),切勿將感測器太靠近火焰,以免外殼塑膠熔化造成危險!

🛠️ 實驗材料清單

在開始接線前,請準備以下硬體元件:

  • Arduino Uno R3 開發板 × 1

  • USB 傳輸線 × 1

  • 2 腳直插式火焰感測元件 × 1

  • 10kΩ 色碼電阻(作下拉分壓使用) × 1

  • 無源/有源蜂鳴器(警報輸出用) × 1

  • 實驗麵包板與跳線 × 若干

🛒 新手必備推薦:

想一次購齊 DHT11 與多種常用感測器?歡迎前往選購 米羅科技程式學習套件組,一次滿足實作需求!

👍爆款推薦:程式學習套件組

購買網址:shop.mirotek.com.tw

🔌 電路接線說明(Circuit Wiring)

請對照麵包板與接線圖,依照以下順序完成連接:

  1. 火焰感測元件(2 腳):

    • 長腳(正極):連接至 Arduino 的 GND腳位。

    • 短腳(負極):連接至 10kΩ 電阻的一端,同時接出一條訊號線連接至 Arduino 的 Digital Pin 7 (D7)數位接腳。

  2. 10kΩ 分壓電阻:

    • 第一端:與火焰感測元件短腳及 D7 訊號線相連(訊號節點)。

    • 第二端:連接至 Arduino 的 5V電源腳位

  3. 蜂鳴器(Buzzer):

    • 正極(長腳 / +):連接至 Arduino Digital Pin 13 (D13)

    • 負極(短腳):連接至 Arduino 的 GND 接地端。

💻 Arduino 程式碼範例(Code Example)

將以下範例程式碼複製並燒錄至您的 Arduino Uno 中:

/*
 * Arduino 入門教學 第14篇:2 腳火焰感測元件讀取與火災警報
 * 說明:透過 D7 讀取分壓高低電位,當偵測到火源紅外線時觸發 D13 蜂鳴器
 */

int flamePin = 7;    // 2 腳火焰元件分壓信號接點 (Digital Pin 7)
int buzzerPin = 13;  // 蜂鳴器警報腳位 (Digital Pin 13)
int val = 0;         // 儲存數位讀取值的變數

void setup() {
  pinMode(flamePin, INPUT);    // 設定 Pin 7 為數位輸入模式
  pinMode(buzzerPin, OUTPUT);  // 設定 Pin 13 為數位輸出模式
  Serial.begin(9600);          // 初始化序列埠通訊,鮑率 9600 bps
}

void loop() {
  val = digitalRead(flamePin); // 讀取 D7 腳位數位狀態 (HIGH 或 LOW)

  // 判斷是否偵測到火源
  if (val == LOW) {      
    Serial.println("FLAME, FLAME, FLAME");
    digitalWrite(buzzerPin, HIGH);// 偵測到火焰紅外線,觸發 Pin 13 蜂鳴器發出警報
  } else {
    Serial.println("no flame");
    digitalWrite(buzzerPin, LOW);// 無火源時關閉警報
  }

  delay(200); // 每 0.2 秒更新一次狀態
}

🔍 程式重點解析(Code Breakdown)

  1. pinMode(flamePin, INPUT);:將 D7 腳位設置為輸入,用來讀取分壓點的電位狀態。

  2. pinMode(buzzerPin, OUTPUT);:將 D13 腳位設置為輸出,用來控制蜂鳴器開關。

  3. digitalRead(flamePin);:讀取 D7 腳位是高電位(HIGH / 5V)還是低電位(LOW / 0V)。

  4. 運作邏輯

    • 靠近火源時:火焰元件感應到紅外線導通,5V 通過元件使 D7 被 10kΩ 電阻下拉至 LOW(0V),觸發 digitalWrite(13, HIGH) 讓 D13 連接的蜂鳴器發出警報!
    • 平時無火源:火焰元件阻值極高(接近開路),D7 節點電位拉高至 HIGH(5V)

📚 延伸閱讀與相關課程

相關文章