2015年5月11日 星期一

課程15-聲音模組實驗

目的:

使用Arduino 邏輯讀取聲音模組的數值,並且利用LED來顯示音量大小聲。


電子元件:

麵包板 x 1
Arduino 主板 x 1
聲音模組 x 1
LED x 5


電路圖:



程式碼:



  1. const int ledCount=5;
  2. const int Sound=0;
  3. const int ledPins[] = {3,4,5,6,7};
  4. void setup(){
  5.  pinMode(ledPins[thisLed],OUTPUT);
  6. }
  7. void loop(){
  8.  int val = analogRead(Sound) / 200 ;  
  9.  for(int thisLed = 0;thisLed < val;thisLed++){
  10.   digitalWrite(ledPins[thisLed],HIGH);
  11.  }
  12.  delay(33);
  13.  for(int thisLed = 0;thisLed < ledCount;thisLed++){
  14.    digitalWrite(ledPins[thisLed],LOW);
  15.  }
  16.  delay(33);
  17. }


程式說明:

第一行 定義LED總數有五個。
第二行 宣告聲音模組樹入腳位為A0。
第三行 宣告一個LED陣列,腳位分別為Pin3~Pin7。
第四行~第六行 宣告LED陣列為輸出腳位。
第七行~第十六行 為主程式
第八行 邏輯讀取聲音模組數值,數值從0~1024,我們需要把1024分成五個等級,並且算出數值在哪個區間,所以我們把讀進來的數值除以200,得到的商(0~5)就是對應到我們的LED燈,再把運算結果儲存在整數變數val。
第九行~第十一行 使用For迴圈,針對運算結果val,來控制LED亮起幾個。
第十二行 延遲33ms(微秒)。
第十三行~第十五行 使用For迴圈把LED 都關閉。
第十六行 延遲33ms(微秒)。

實驗影片:


4 則留言:

  1. 你好!我剛接觸,請問如果我用這個燈
    我的電阻要接多少呢?謝謝
    http://goods.ruten.com.tw/item/show?21105246351707

    回覆刪除
  2. 作者已經移除這則留言。

    回覆刪除
  3. 請問一下 聲音感測器與其他感測器可以同時使用嗎?
    測試時無法同時使用,是有甚麼原因嗎?
    麻煩了

    回覆刪除
  4. pinMode(ledPins[thisLed],OUTPUT);
    這句要定義什麼???

    回覆刪除

Arduino、Raspberry Pi、System Integration,如有問題或建議,可以互相討論喔~