13-04誰是大聲公
(2016/11/03)
這單元會用到麥克風(A2)
題目一:誰是大聲公
說明:利用Arduino IDE下的「序列埠監控視窗」來讀取「麥克風(A2)」的值,需按下「按鍵開關(D2)」才會開始收音!
進入Moto Blockly (檔案於附件)
註:延遲0.2秒是為了避免按下按鍵的聲音造成影響及一直收錄A2的值
將上面程式轉成Arduino程式語言,並將程式複製到Arduino IDE裡面來上傳
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT);
}
void loop()
{
if (digitalRead(2) == 1) {
delay(200);
if (analogRead(A2) > 500) {
Serial.println(analogRead(A2));
}
}
}
打開「序列埠監控視窗」,當按下「按鍵開關(D2)」,就可以開始來收集「麥克風(A2)」(A2>500)的值了,其值一樣是介於0與1023間!
測試成功
題目二:另類開關(如:「聲控」開關燈)
說明:透過「麥克風」(A2)的功能除了可製作「大聲公」外,也可以製作成「另類開關」,如這邊要介紹的「拍掌」開關燈(「聲控」開關燈),當燈滅的時侯,拍掌則燈亮;當燈亮的時侯,拍掌則燈滅!!
進入Moto Blockly (檔案於附件)
註:如果怕太靈敏,可以把要大於A2的值調高一點,另外,停頓一下,是避免程式反應太快,一下子又滅或亮
將上面程式轉成Arduino程式語言,並將程式複製到Arduino IDE裡面來上傳
void setup()
{
pinMode(10, INPUT);
pinMode(10, OUTPUT);
}
void loop()
{
if (analogRead(A2) > 600) {
if (digitalRead(10) == 1) {
digitalWrite(10,LOW);
delay(500);
} else {
digitalWrite(10,HIGH);
delay(500);
}
}
}
試試看,當燈滅的時侯,拍掌則燈亮;當燈亮的時侯,拍掌則燈滅!!測試成功!