Arduino 音樂盒實習

學習如何學習!

設備與材料

個人電腦 × 1
arduino Uno × 1
麵包板 × 1
喇叭 × 1
電晶體 × 1
連接線 若干

實體接線圖

Arduino 發音函式

tone(pin,frequency,duration) ;
pin : 那一隻接腳要輸出方波
frequency : 方波的頻率
duration: 方波輸出的時間(ms)

tone(7,262,250);
表示在第7腳產生262Hz方波250ms

tone()指令執行後會立刻執行下一行指令,因此如果你寫以下指令可能不會有正確的結果。它並不會依序產生262Hz 250ms、294Hz 250ms 、 330Hz 250ms,你只會聽到 330Hz 250ms 。
tone(7,262,250);
tone(7,294,250);
tone(7,330,250);


你應該將你的程式修正如下
tone(7,262,250);
delay(250);
tone(7,294,250);
delay(250);
tone(7,330,250);
delay(250);

tone()指令執行完,必需要delay()相對應的時間

tone(pin,frequency) ;
pin : 那一隻接腳要一直輸出方波
frequency : 方波的頻率

noTone(pin) ;
pin : 那一隻接腳要停止輸出方波

tone(7,262);
表示在第7腳一直產生262Hz方波,直到 noTone(7);指令

歌曲簡譜

簡譜相關知識

簡譜介紹

Layer 1 1 Do
Layer 1 1 高音Do
Layer 1 1 低音Do
Layer 1 1 1/2拍
Layer 1 1 1/4拍
Layer 1 1 1.5拍

參考程式

/***************************************************/
/*  送電即演奏小蜜蜂樂曲2小節後就停止                 */
/***************************************************/

//喇叭控制接腳 
const int speaker = 7;
//樂曲速度
int tempo=250;

//低音頻率表 lfreqs[1]=>低音Do
int lfreqs[] = {0,131,147,165,175,196,220,247};
//中音頻率表 freqs[1]=>Do
int freqs[] = {0,262,294,330,349,392,440,494};
//高8度音頻率表 hfreqs[1]=>高音Do
int hfreqs[] = {0,523,587,659,698,784,880,988};
//高16度音頻率表 shfreqs[1]=>高16度音Do
int shfreqs[] = {0,1046,1175,1318,1397,1568,1760,1976};

void setup() {
    //設定喇叭接腳為輸出
    pinMode(speaker,OUTPUT);
    //輸入設定

}

void loop() {
  //自己要加上按鈕判斷結構喔!
  song1();
  //演奏1次就停止演奏

  //執行一次就停止,如果你加上按鈕判斷時,請取消 while 迴圈
  while(1){
    delay(1000);
  }  
}

//高音發音函式
//自己寫喔!

//中音發音函式
void music(byte scale,float bit){    
    tone(speaker,freqs[scale],bit*tempo);  
    delay(bit*tempo);
    //中斷1/20拍
    delay(tempo/20);
}

//低音發音函式
//自己寫喔!



//第一首歌
void song1 (){
 //設定樂曲速度
  tempo=250;
 //小蜜蜂的部份發音
  music(5,1); //5 1拍
  music(3,1); //3 1拍
  music(3,2); //3 2拍
  music(4,1); //4 1拍
  music(2,1); //2 1拍
  music(2,2); //2 2拍
}


功能

1.按 S1 演奏 小蜜蜂歌曲
2.按 S2 演奏 歌曲2
3.按 S3 演奏 歌曲3

音階表

音階H1#H1H2#H2H3H4#H4H5#H5H6#H6H7
頻率(Hz)524555588623660699741785832881933988
高8度音
音階1#12#234#45#56#67
頻率(Hz)262278295313332352373395418443469497
中音
音階L1#L1L2#L2L3L4#L4L5#L5L6#L6L7
頻率(Hz)131139147156165175185196208220233247
低8度音

相關知識

tone
noTone


入門
知識
語法
流程
函式
實習

發佈留言