Basic Tutorial for Arduino, 入門篇

【Arduino 入門教學】第 12 篇:感測光線變化!用光敏電阻(LDR)控制蜂鳴器實現光控聲音警報器

💡 實驗說明:什麼是光敏電阻(Photoresistor / LDR)?

光敏電阻(Photoresistor,又稱光感電阻、LDR) 是一種利用半導體光電效應製成的特殊電阻器:

  • ☀️ 光照強時:內部載流子增加,電阻值顯著減小

  • 🌑 無光或微光時:載流子減少,電阻值顯著增大

利用這種「光強阻小、光弱阻大」的特性,光敏電阻廣泛應用於自動路燈感應、環境光亮度調節、光控開關以及防盜光控警報器中。

本實驗將透過 Arduino 控制蜂鳴器,當環境光線改變時(例如用手遮擋或用手電筒照射光敏電阻),觀察聲音頻率與音量變化的光控聲音效果!

🛠️ 實驗材料清單

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

  • Arduino Uno R3 開發板 × 1
  • USB 傳輸線 × 1
  • 光敏電阻(Photoresistor / LDR) × 1
  • 無源蜂鳴器(Passive Buzzer)或有源蜂鳴器 × 1
  • 10kΩ 直插電阻(作分壓使用) × 1
  • 實驗麵包板與跳線 × 若干

🛒 爆款推薦:想一次搞定 Arduino 核心感測器與電子元件?歡迎前往選購 米羅科技程式學習套件組,快速開啟自造者專題!

 

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

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

🔌 電路接線說明(Circuit Wiring)

本實驗採用極簡的串聯迴路設計,將光敏電阻作為限流/分壓元件與蜂鳴器串接:

  1. 光敏電阻(Photoresistor / LDR):

    • 第一腳:連接至 Arduino 的 Pin 13 數位輸出接腳。

    • 第二腳:連接至 蜂鳴器的正極(長腳 / 印有 + 號)

  2. 蜂鳴器(Buzzer):

    • 正極(長腳 / 印有 + 號):與光敏電阻第二腳相連。

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

💡 接線小貼士:光敏電阻沒有正負極之分,任意方向插入麵包板即可;蜂鳴器則需注意方向,長腳為正極接光敏電阻,短腳為負極接地。

接線說明:

💻 完整程式碼範例(Code Example)

請將以下範例程式碼複製並燒錄至你的 Arduino Uno 開發板中:

/*
 * Arduino 入門教學 第12篇:光敏電阻控制蜂鳴器
 * 說明:透過 Pin 13 輸出不同脈衝頻率,結合光敏電阻觀察光控聲音效果
 */

int buzzer = 13;  // 設定控制蜂鳴器的數位接口為 Pin 13

void setup() {
  pinMode(buzzer, OUTPUT); // 設定 13 號腳位為輸出模式
}

void loop() {
  int i;
  
  // 階段 1:發出高頻短促聲音
  for(i = 0; i < 50; i++) {
    digitalWrite(buzzer, HIGH);
    delay(1);                  // 高電位維持 1ms
    digitalWrite(buzzer, LOW);
    delay(1);                  // 低電位維持 1ms
  }
  delay(1000);                 // 暫停 1 秒

  // 階段 2:發出較低頻長聲音
  for(i = 0; i < 100; i++) {
    digitalWrite(buzzer, HIGH);
    delay(3);                  // 高電位維持 3ms
    digitalWrite(buzzer, LOW);
    delay(3);                  // 低電位維持 3ms
  }
  delay(1000);                 // 暫停 1 秒
}

 

🔍 程式碼深度解析(Code Breakdown)

  • pinMode(buzzer, OUTPUT);:初始化數位腳位 13 為輸出腳位。

  • digitalWrite(buzzer, HIGH); delay(1); digitalWrite(buzzer, LOW); delay(1);: 透過急速切換高低電位,給予蜂鳴器固定頻率的方波訊號。delay(1) 產生的訊號週期較短(頻率較高),因此聲音較為清亮短促。

  • delay(3) 迴圈:週期拉長(頻率較低),發出頻率較低的音調。

  • 結合光敏電阻運作:當用手遮擋光敏電阻(光照弱、電阻大)時,蜂鳴器分得電壓變小,聲音較微弱;當使用手電筒照射光敏電阻(光照強、電阻小)時,蜂鳴器電壓增大,聲音顯著變響亮!

🎯 實驗成果驗證與測試步驟

  1. 將程式碼成功燒錄至 Arduino Uno。

  2. 未照射光線時:蜂鳴器依照程式發出頻率聲音,但聲音相對較小。

  3. 開啟手電筒或檯燈照射光敏電阻:觀察到阻值迅速下降,蜂鳴器發出的音量隨光照增強而明顯變大!

🚀 進階延伸應用:用 Arduino analogRead() 打造精準光控警報器

若你想讓 Arduino 更精準地根據環境光線強度來控制蜂鳴器發聲(例如:暗處自動報警),建議採用 類比讀取(Analog Read) 搭配分壓電路:

  1. 接線:將光敏電阻與 10kΩ 電阻串聯,中間節點接到 A0 類比輸入腳位

  2. Logic:使用 analogRead(A0) 讀取 0~1023 的光強數值,當數值低於設定門檻(代表天黑/遮擋)時,觸發 tone(buzzerPin, 1000) 讓蜂鳴器發出警報聲!

掌握本範例後,你也可以將蜂鳴器替換為 LED 燈,輕鬆實作自動感應夜燈喔!

📚 延伸閱讀與教學課程

 

 

相關文章