💡 實驗說明:什麼是光敏電阻(Photoresistor / LDR)?
光敏電阻(Photoresistor,又稱光感電阻、LDR) 是一種利用半導體光電效應製成的特殊電阻器:
☀️ 光照強時:內部載流子增加,電阻值顯著減小。
🌑 無光或微光時:載流子減少,電阻值顯著增大。
利用這種「光強阻小、光弱阻大」的特性,光敏電阻廣泛應用於自動路燈感應、環境光亮度調節、光控開關以及防盜光控警報器中。
本實驗將透過 Arduino 控制蜂鳴器,當環境光線改變時(例如用手遮擋或用手電筒照射光敏電阻),觀察聲音頻率與音量變化的光控聲音效果!

🛠️ 實驗材料清單
在開始接線前,請準備以下硬體元件:
- Arduino Uno R3 開發板 × 1
- USB 傳輸線 × 1
- 光敏電阻(Photoresistor / LDR) × 1
- 無源蜂鳴器(Passive Buzzer)或有源蜂鳴器 × 1
- 10kΩ 直插電阻(作分壓使用) × 1
- 實驗麵包板與跳線 × 若干
🛒 爆款推薦:想一次搞定 Arduino 核心感測器與電子元件?歡迎前往選購 米羅科技程式學習套件組,快速開啟自造者專題!
🔌 電路接線說明(Circuit Wiring)
本實驗採用極簡的串聯迴路設計,將光敏電阻作為限流/分壓元件與蜂鳴器串接:
光敏電阻(Photoresistor / LDR):
第一腳:連接至 Arduino 的 Pin 13 數位輸出接腳。
第二腳:連接至 蜂鳴器的正極(長腳 / 印有 + 號)。
蜂鳴器(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)迴圈:週期拉長(頻率較低),發出頻率較低的音調。結合光敏電阻運作:當用手遮擋光敏電阻(光照弱、電阻大)時,蜂鳴器分得電壓變小,聲音較微弱;當使用手電筒照射光敏電阻(光照強、電阻小)時,蜂鳴器電壓增大,聲音顯著變響亮!
🎯 實驗成果驗證與測試步驟
將程式碼成功燒錄至 Arduino Uno。
未照射光線時:蜂鳴器依照程式發出頻率聲音,但聲音相對較小。
開啟手電筒或檯燈照射光敏電阻:觀察到阻值迅速下降,蜂鳴器發出的音量隨光照增強而明顯變大!
🚀 進階延伸應用:用 Arduino analogRead() 打造精準光控警報器
若你想讓 Arduino 更精準地根據環境光線強度來控制蜂鳴器發聲(例如:暗處自動報警),建議採用 類比讀取(Analog Read) 搭配分壓電路:
接線:將光敏電阻與 10kΩ 電阻串聯,中間節點接到 A0 類比輸入腳位。
Logic:使用
analogRead(A0)讀取 0~1023 的光強數值,當數值低於設定門檻(代表天黑/遮擋)時,觸發tone(buzzerPin, 1000)讓蜂鳴器發出警報聲!
掌握本範例後,你也可以將蜂鳴器替換為 LED 燈,輕鬆實作自動感應夜燈喔!
📚 延伸閱讀與教學課程
📌 課程索引:Arduino 新手學習必讀經典 – 快速索引指南

