以前看過一種拍手就可以讓電燈開關的裝置,應該是有一個偵測聲音的裝置,啟動了開關。有一個聲音傳感器可以做到偵測聲音大小的功能,透過麥克風聲音傳感器可以檢測聲音,本實作就來看看如何使用聲音傳感器控制LED的明暗。
聲音偵測傳感器主要靠一個微型的麥克風是否收到聲音,不過這個模組只能偵測是否有聲音,無法識別聲音的大小或者特定的頻率。靈敏度可以用螺絲起子調整傳感器上的小型的十字旋鈕電阻。如果靈敏度太高,燈光就會一直明暗交互閃爍,靈敏度太低,就會連拍手拍得很大聲也偵測不到。實作的過程中,由於聲音傳感器本身有傳輸的時間差,有時需要拍第二次才能正常讓燈光熄滅或點亮。
聲音偵測傳感器主要靠一個微型的麥克風是否收到聲音,不過這個模組只能偵測是否有聲音,無法識別聲音的大小或者特定的頻率。靈敏度可以用螺絲起子調整傳感器上的小型的十字旋鈕電阻。如果靈敏度太高,燈光就會一直明暗交互閃爍,靈敏度太低,就會連拍手拍得很大聲也偵測不到。實作的過程中,由於聲音傳感器本身有傳輸的時間差,有時需要拍第二次才能正常讓燈光熄滅或點亮。
[LM393聲音偵測模組特點]
- 靈敏度可調整(圖中藍色數字電位器調節)
- 工作電壓3.3V-5V
- 輸出以0和1 (高或低電位) 表示
- 小板PCB尺寸:3 .2 cm * 1.7cm
[材料]
- Arduino Uno x 1
- 麥克風聲音傳感器 x 1
- 麵包板 x 1
- LED x 1
- 220歐姆電阻 x 1
- 連接線 x 4 條
[接線與電路圖]
Arduino
|
聲音偵測模組
|
5V (VCC)
|
VCC
|
GND
|
GND
|
Pin 7
|
OUT
|
[程式]
int ledPin = 13; int sensorPin = 7; boolean val = 0; boolean ledOn =0; void setup(){ pinMode(ledPin, OUTPUT); pinMode(sensorPin, INPUT); Serial.begin (9600); } void loop (){ val =digitalRead(sensorPin); Serial.println (val); // 當感測器偵測到聲音訊號時,讓LED變暗或變亮 if (val==HIGH) { // 當 LED 熄滅時,讓LED亮,否則熄滅 LED if (!ledOn) { digitalWrite(ledPin, HIGH); ledOn = 1; } else { digitalWrite(ledPin, LOW); ledOn = 0; } } }
[實作結果]
調整傳感器上的十字旋鈕後,才得到比較好的感測狀況。[參考資料]
- Randomnerdtutorials : Guide for Microphone Sound Sensor with Arduino
led一直都是亮的 把聲音感測模組拔掉也一直亮
回覆刪除程式ledon是不是不需要的然後你自己多加上去
張貼留言