2013年5月6日 星期一

Arduino範例08:控制喇叭發聲

之前拆了收音機並且獲得的喇叭(8歐姆3瓦)兩顆,外加兩個壓電片。
所以配合Ardunio的板子,我們做一個發聲的範例。(可參考"喇叭Tear down")

我們知道各音符剛好對應的就是Hz,例如Do(523Hz), Re (587Hz), Mi(659Hz), Fa(698Hz), So(784Hz), La(880Hz), Si(988Hz),所以如果我們要叫Ardunio輸出這些音符,就需要這些Hz數。很幸運地是,Ardunio已經幫我們建立好對應表了,就是內建 pitches.h 這個檔案。

所以接下來我就挑了小蜜蜂當作練習的曲目,讓Ardunio輸出一系列的脈波給喇叭發聲。

Video


接線
ㄜ....我懶得畫了,就串連一個1k歐姆的電阻就好了。

Code

# include "pitches.h"           //叫出pitches.h當library
int thisnote = 0;
int melody[] = {
NOTE_G5, NOTE_E5, NOTE_E5, 0, NOTE_F5, NOTE_D5, NOTE_D5, 0, NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_G5, NOTE_G5, NOTE_G5};
                                       //定義小蜜蜂音符的數列
void setup () {
  }

void loop () {
    for (thisnote = 0; thisnote < 15; thisnote++) {
      tone(8, melody[thisnote], 500);
      delay(500);
      }                               // 用for函數把上面15個音符依序叫出來
                                       // 每個各停0.5秒
      delay (1000);
                                       //一輪完了之後停1秒。
  }


4 則留言:

  1. 不好意思 我貼上你複製的程式碼 輸出有問題
    請問是我貼的問題或是貼上去的空格 還是要再打什麼嗎?
    可以拜託教教我們嗎~謝謝

    回覆刪除
    回覆
    1. 1. 可能常見的狀況是:你的arduino裡找不到"pitches.h"這個library
      2. 你可能用的是蜂嗚器,不是喇叭。
      3. 喇叭瓦數太大,無法用Arduino直接推動。
      以上再不行,你再把錯誤碼貼上來吧!

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

      刪除
    3. arduino裡找不到"pitches.h"這個library這個隻料夾怎麼辦?

      刪除