iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
自我挑戰組

arduino基礎實作系列 第 9

day9:蜂鳴器撥放歌曲

  • 分享至 

  • xImage
  •  

第9天我要實作的是蜂鳴器撥放歌曲。

那首先是這次需要的模組
蜂鳴器

接線圖

實體圖

再來是arduino部分

首先我需要先設定蜂鳴器的頻率,這些頻率基本上在網上都能收到。

接著是設定延遲的數值及輸出腳位。

接著就可以利用tone(腳位,發音頻率,延時)函數來使其發應,tone的延時是指發音的時間,所以下面需要利用delay來讓它有拍子出來。

接著將歌打完後上傳就可以聽到一整收個的旋律了。

程式碼(小星星)

#define DO 262
#define RE 294
#define MI 330
#define FA 349
#define SO 392
#define LA 440
#define SI 493
#define HDO 523

const int INTERVAL=500;
const byte SP_PIN=11;

void setup(){
  pinMode(SP_PIN,OUTPUT);
}

void loop() {
  tone(SP_PIN,DO,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,DO,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,SO,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,SO,INTERVAL);
  delay(INTERVAL);

  tone(SP_PIN,LA,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,LA,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,SO,INTERVAL);
  delay(INTERVAL*2);  

  tone(SP_PIN,FA,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,FA,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,MI,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,MI,INTERVAL);
  delay(INTERVAL);
  
  tone(SP_PIN,RE,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,RE,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,DO,INTERVAL);
  delay(INTERVAL*2);
  
  tone(SP_PIN,SO,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,SO,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,FA,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,FA,INTERVAL);
  delay(INTERVAL);
  
  tone(SP_PIN,MI,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,MI,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,RE,INTERVAL);
  delay(INTERVAL*2);

    tone(SP_PIN,SO,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,SO,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,FA,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,FA,INTERVAL);
  delay(INTERVAL);
  
  tone(SP_PIN,MI,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,MI,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,RE,INTERVAL);
  delay(INTERVAL*2);

  tone(SP_PIN,DO,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,DO,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,SO,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,SO,INTERVAL);
  delay(INTERVAL);

  tone(SP_PIN,LA,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,LA,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,SO,INTERVAL);
  delay(INTERVAL*2); 

  tone(SP_PIN,FA,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,FA,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,MI,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,MI,INTERVAL);
  delay(INTERVAL);
  
  tone(SP_PIN,RE,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,RE,INTERVAL);
  delay(INTERVAL);
  tone(SP_PIN,DO,INTERVAL);
  delay(INTERVAL*3);
}

上一篇
day8:結合lcd及溫溼度感應器製作溫度器
下一篇
day10:oled顯示器
系列文
arduino基礎實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言