Arduino演奏the truth that you leave
利用Arduino及配套的蜂鳴器等,可以實作音樂的演奏,由于本人水平所限,該視頻僅僅截取了原曲的一部分,而且音調有偏差的地方,還請多多包涵!
視頻
Arduino-The Truth that You Leave
頭檔案下載地址:
https://github.com/johnrickman/LiquidCrystal_I2C
代碼:
#include<LiquidCrystal_I2C.h>
#define Do0 262
#define Re0 294
#define Mi0 330
#define Fa0 349
#define Sol0 395
#define La0 440
#define Si0 494
#define Do1 523
#define Re1 587
#define Mi1 659
#define Fa1 698
#define Sol1 784
#define La1 880
#define Si1 988
#define Do2 1046
#define Re2 1175
#define Mi2 1318
#define Fa2 1397
#define Sol2 1568
#define La2 1760
#define Si2 1976
//各個聲調的頻率
LiquidCrystal_I2C lcd(0x27, 16, 2);//初始化LCD
int pin=3; //自行選擇作為輸出的介面
int scale[]={Do0,Re0,Mi0,Fa0,Sol0,La0,Si0,Do1,Re1,Mi1,Fa1,Sol1,La1,Si1,Do2,Re2,Mi2,Fa2,Sol2,La2,Si2};
//定義音調陣列
int song[]={12,6,8,12,0,6,8,12,0,6,8,12,0,6,0,8,0,8,0,8,0,8,8,0,8,0,9,0,10,0,11,0,13,19,13,15,19,0,
13,15,19,0,13,17,18,0,19,0,19,0,9,0,9,0,12,12,12,12,9,9,9,0,12,12,12,12,9,10,11,0,10,0,0,10,0,0,0,12,12,12,12,9,9,9,0,12,12,12,12,9,10,11,0,12,0,0,9,10,11,0,0
,6,7,8,12,0,0,11,10,9,0,0,10,11,10,0,9,0,8,0,0,0,12,12,12,12,9,9,9,0,12,12,12,12,9,10,11,0,10,0,10,13,14,15,0,0,0,19,19,19,19,16,16,16,0,19,19,19,19,16,17,18,0,
17,0,10,13,13,14,15,14,13,10,8,9,0,19,19,19,19,16,16,16,0,19,19,19,19,16,17,18,0,19,19,19,0,17,0,18,17,13,14,15,19,19,0,0,18,17,16,0,16,0,0,21,0,17,16,16,17,16,0,15,15,0,19,19,19,19,
16,16,16,0,19,19,19,19,16,17,19,0,20,0,8,10,13,15,17,20,0,0,0,0,0,10,9,8,7,8,0,0,8,8,9,0,0,10,9,8,7,8,0,0,8,8,3,0,0,10,9,8,7,8,0,0,8,9,0,12,0,10,0,12,0,0,0,10,9,8,7,8,0,0,8,0,9,0,0,10,9,8,7,8,0,0,8,0,3,0,0,10,9,8,7,8,0,0,8,0,12,0,10,0,12,0,0,0,0,0,
12,12,0,8,8,0,12,12,0,9,9,0,8,9,10,10,10,0,9,8,10,12,12,0,0,12,12,0,8,8,0,12,12,0,9,9,0,7,8,9,10,10,10,15,14,12,0,0,12,12,0,8,8,0,12,12,0,9,9,8,9,8,0,0,9,12,12,0,8,8,0,12,12,0,9,9,8,9,8,0,0,0,0,0,0};
//以陣列的形式存放歌曲音調
void setup()
{
pinMode(pin,OUTPUT);
lcd.init();//初始化LCD
lcd.backlight(); //點亮LCD背光燈
lcd.setCursor(1, 0);//調整游標位置為第0行(即物理上的第1行)第1列(下同)
lcd.print("the truth that");//輸出相應的文字
lcd.setCursor(4, 1);
lcd.print("you leave");
delay(5000);
lcd.clear();//清屏
lcd.setCursor(3, 0);
lcd.print("by Pianoboy");
delay(5000);
lcd.clear();
lcd.print("Give me a like!");
}
void loop()
{
for(int i=0;i<425;i++)
{
if(song[i]!=0)
{
tone(pin,scale[song[i]-1]); //播放對應的音調,原型為tone(輸出管腳,頻率(Hz))
}
else
{
noTone(pin);//終止播放
}
delay(120);
noTone(pin);
delay(60);
}
Display();
delay(5000);
}
void Display()
{
lcd.clear();
lcd.setCursor(3,0);
lcd.print("Thank you!");
delay(5000);
lcd.clear();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/252600.html
標籤:其他
上一篇:微分方程建模
下一篇:通信基礎,TCP/IP協議
