Arduino使用蜂鳴器發出音階
實驗目標
使用陣列紀錄音階的頻率,經由迴圈存取音階陣列,透過蜂鳴器依序發出每個音階。
實驗所需元件
蜂鳴器x1
實驗接線圖
蜂鳴器長腳接正極,短腳接負極。
程式實作提示
使用前置處理器define定義Do到Si七個音階的頻率,依序放置到陣列melody,函式tone讓蜂鳴器發出指定的音階,並經由函式delay決定音階的持續時間,而函式noTone可以使蜂鳴器不發出聲音。
程式碼與解說
第1到7行:定義音階Do到Si。
第8行:宣告與定義陣列melody有七個元素,分別是音階Do到Si。
第9行:宣告與定義buzPin為9。
第10到12行:在setup函式內,使用函式pinMode設定buzPin的接腳為OUTPUT模式。
第13到20行:在loop函式內,使用迴圈存取陣列melody,呼叫函式tone發出陣列melody所指定的音階,使用函式delay延遲1000毫秒。迴圈結束後使用函式noTone讓蜂鳴器不發出聲音,使用函式delay延遲1000毫秒。
執行程式
上傳程式到Arduino,上傳成功後,蜂鳴器就會產生音階Do、Re、Mi、Fa、So、La、Si,每一個音持續一秒鐘。
問題討論與實作
如果要產生小蜜蜂這首歌「So-Mi-Mi Fa-Re-Re」,請問程式要如何修改?
實驗圖片