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);

}

}

}

  • 試試看,當燈滅的時侯,拍掌則燈亮;當燈亮的時侯,拍掌則燈滅!!測試成功!