Arduino筆記(60):麥克風聲音感測模組

以前看過一種拍手就可以讓電燈開關的裝置,應該是有一個偵測聲音的裝置,啟動了開關。有一個聲音傳感器可以做到偵測聲音大小的功能,透過麥克風聲音傳感器可以檢測聲音,本實作就來看看如何使用聲音傳感器控制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;
    }
  }
}

[實作結果]

調整傳感器上的十字旋鈕後,才得到比較好的感測狀況。

[參考資料]


1 留言

  1. led一直都是亮的 把聲音感測模組拔掉也一直亮
    程式ledon是不是不需要的然後你自己多加上去

    回覆刪除

張貼留言

較新的 較舊