voice sensor
信號圖:
原廠數據如下圖:
6.5元的模塊。
一 產品特點:
1 可以檢測周圍環境的聲音強度,使用注意:此傳感器只能識別聲音的有無(根據震動原理)不能識別聲音的大小或者特定頻率的聲音
2 靈敏度可調(圖中藍色數字電位器調節)
3 工作電壓3.3V-5V
5 輸出形式 數字開關量輸出(0和1高低電平)
6 設有固定螺栓孔,方便安裝
7 小板PCB尺寸:3.2cm * 1.7cm
二 模塊接線說明
1 VCC 外接3.3V-5V電壓(可以直接與5v單片機和3.3v單片機相連)
2 GND 外接GND
3 OUT 小板開關量輸出接口(0和1)
三 使用說明
1聲音模塊對環境聲音強度最敏感,一般用來檢測周圍環境的聲音強度。
2 模塊在環境聲音強度達不到設定閾值時,OUT輸出高電平,當外界環境聲音強度超過設定閾值時,模塊OUT輸出低電平;
3 小板數字量輸出OUT可以與單片機直接相連,通過單片機來檢測高低電平,由此來檢測環境的聲音;
4 小板數字量輸出OUT可以直接驅動本店繼電器模塊,由此可以組成一個聲控開關;
調試方法跟這個視頻差不多。只不過我的這個模塊沒有模擬信號輸出口,只有數字輸出口{TTL電平},不能檢測聲音強度,只能檢測聲音有無。
先提供一段調試聲音靈敏度的代碼,當你用螺絲刀調節變阻器的時候。
要將數據介於0,1之間。
當有聲音時是0,
沒有聲音時是1.
要調節到剛好都輸出的是1, 有一點聲音的時候,立即輸出0.
結合串口輸出並調試代碼。
int sensorVoice = 2; void setup() { pinMode(sensorVoice, INPUT); Serial.begin(9600); } void loop() { int temp = digitalRead(sensorVoice); Serial.println(temp); delay(200); }
圖中有0輸出,表示有聲音。因為我在吹口哨,哈哈~
這樣就能表示其比較靈敏了。TTL來說,美中不足沒有analog
下面就可以寫聲控程序了。
下面做個例程。做個簡單的聲控燈。
功能:
有聲音后,達到一定程度,激活繼電器,打開電燈,亮30秒。然后熄滅。
做了一個簡單的消除雜音處理,有點像消抖,其實都差不多。
就是加了個delay(若干毫秒) 函數。
//-----------voice-sensor------------ int sensorVoice = 2; int sensorJidianqi = 13; // void setup() { pinMode(sensorJidianqi, OUTPUT); pinMode(sensorVoice, INPUT); Serial.begin(9600); } void loop() { if (digitalRead(sensorVoice) ==0) { delay(100); if (digitalRead(sensorVoice) ==0) { digitalWrite(sensorJidianqi, HIGH); //LOW to power on JiDianQi delay(4000); digitalWrite(sensorJidianqi, LOW); // } } else { digitalWrite(sensorJidianqi, LOW); } }
這個是沒有用繼電器的。
用繼電器的時候,注意是高電平激活,還是低電平激活繼電器的。這個要留意。本人買的幾個都是低電平導通的,不同繼電器可能不同。
用的是arduino Uno pin13上默認自己帶的那個LED燈。實驗就是對着模塊吹一聲,而后,模塊上的Pin13出默認的LED燈,就亮了4秒鍾。而后自動熄滅。
代碼就是這么簡單
切記:一定要事先調整好模塊,用螺絲刀調整好,到臨界狀態。
如果有聲音,模塊輸出低電平 0 v
如果沒有聲音,模塊輸出高點平 5V
是在一個區間內的,一個高一個低。