| 
 | 
 本帖最後由 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數值,自由發揮想要做什麼事 
 |   
 
 
 
 |