一、 聲音感測器模組 (Sound Sensor) 運作原理
聲音感測器(Sound Sensor) 是一種能將環境聲波(振動)轉化為電壓訊號的感測模組。在 Arduino 專案中,聲音感測器主要用於檢測周圍環境的聲音強度或是否有聲音發生,非常適合用來製作拍手聲控燈、互動式機器人、音樂燈光秀或噪音監測器。
需特別注意的是:一般的聲音感測器並非專業麥克風,它無法錄音或識別特定的語音內容(如語音辨識),而是透過測量音量振幅大小來觸發特定動作。
常見聲音感測器模組比較:紅板 vs. LM386
市面上有許多款式的 Arduino 聲音感測器,挑選適合專案需求與預算的模組能讓開發更順利:
米羅非常推薦這款超好用的LM386聲音感測器模組,採用音頻處理晶片LM386音頻放大IC,它可以測得聲音比較細微的變化,但相對的價錢自然就比較貴了。
二、 實驗所需材料與電路接線圖 (Hardware Setup)
本實作直接透過 AO (Analog Output) 腳位讀取環境音量的連續變化,並透過 Arduino 的序列埠(Serial Monitor)將數值輸出。
🛒 準備材料
Arduino Uno 開發板 x 1
聲音感測器模組 x 1
杜邦線 3 根
🛍️ 準備好你的硬體工具了嗎? 推薦選購:米羅科技 – Arduino 程式學習爆款套件組(包含豐富驅動專案模組)
⚡ 腳位對接說明 (Pin Mapping)
三、 完整程式碼實作:A0 類比訊號讀取與序列埠監控
使用 analogRead(A0) 讀取 0~1023 的類比數值,並經由 9600 Baud Rate 的序列埠列印出當前聲音強度。
int sensorPin =A0 ; // define analog port A0
int value = 0; //set value to 0
void setup()
{
Serial.begin(9600); //set the baud rate to 9600
}
void loop()
{
value = analogRead(sensorPin); //set the value as the value read from A0
Serial.println(value, DEC); //print the value and line wrap
delay(100); //delay 0.1S
}
實作測試與靈敏度調整指南(觀察聲音訊號波形)
上傳程式碼後,請按以下步驟操作:
點擊 Arduino IDE 功能選單的 「工具」➔「序列繪圖家」(Serial Plotter)(快捷鍵
Ctrl + Shift + L)。將波特率設定為
9600 baud。嘗試靠近感測器大聲說話、敲擊桌面或近距離拍手。
你會觀察到波形出現明顯的起伏脈衝,波峰高度代表當下聲壓的大小。
▼ 下載程序完成後,打開序列繪圖家,靠近聲音感測器大聲說話,或是近距離拍手,就會發現數值會產生變化。
四、 常見問題與除錯 (FAQ)
Q1:打開「序列埠監視器」後看到一堆亂碼怎麼辦?
解答: 請檢查序列埠監視器右下角的波特率(Baud Rate)是否設定為
9600 baud(必須與程式中的Serial.begin(9600)一致)。
Q2:對著麥克風說話或拍手,讀取到的數值變化幅度很小?
解答: 請使用十字螺絲起子微調模組上的藍色可變電阻,適度旋轉以調整基準電壓,讓聲音進來時的數值波動更加明顯。
Q3:如何以圖表方式更直觀地觀察聲音波形?
解答: 在 Arduino IDE 選單中點選 「工具」 「序列埠繪圖器 (Serial Plotter)」,就能將
Serial.println(value, DEC)輸出的連續數值即時畫成聲波折線圖。
🔗 延伸閱讀與推薦課程
🎛️ 類比訊號讀取實作:
🔊 聲音與頻率控制:
👈 上一篇教學:
📘 教學總索引:



