|
本帖最後由 ates1687 於 2014-11-27 23:33 編輯
int DO = 2;
int AO = AO;
int val;
int val1; //建立數位的存取數值
int count=0; //<-不懂為什麼要宣告count @@?
void setup(){
Serial.begin(9600);
pinMode(DO, INPUT);
pinMode(AO, INPUT); //<-沒有宣告AO為類比輸入(關鍵是這一個)
}
void loop(){
Serial.print("val:");
val= analogRead(AO);
val1= digitalRead(DO) //<-建議建立數位讀取,因為你都宣告int DO = 2;
Serial.println(val);
if(val==LOW){ //應該改成" if(val==HIGH){ " or " if(val>0){ "
count++;
Serial.print("val:/n"); // "/n"方便看而已,代表自動換行
Serial.println(val); //顯示類比電壓
Serial.print("count:/n");
Serial.println(count);
delay(300);
}else{ //就是val=LOW(沒有聲音的時候)<-只是註解,個人習慣這樣><"
Serial.print("Sound too small "); //顯示"聲音太小了"
Serial.println(val);
delay(300);
}
}
-------------------------------------------------(文章分割線)
以上程式是參考用,錯了希望能糾正,給予回復者進步的空間!
以下是個人意見:(還是僅供參考,錯了在糾正↑)
analogRead代表類比輸入,讀取的數值假設是1~1025
digitalRead代表數位輸入,讀取的數值應該是0 1 高 低
你那個麥克風模組有兩個腳位分別是DO跟AO
AO就要接類比輸入,DO就要接數位輸入
DO判斷式:
if(val1==HIGH){ //HIGH=有聲音,LOW=沒有聲音
AO判斷式:
if(val>50){ //當聲音到達"程度的音量",要看讀取的analogRead數值,自由發揮想要做什麼事
|
|