各位叔叔阿姨哥哥姐姐:我是五年级的小学生,学习arduino两个多月了。学习论坛里高手的程序,做了个用小喇叭播放《The cute smurfs》音乐的程序。
接线嘛,用9引脚,哪个脚都行。加一个三极管会特别大声,不加三极管直接连线也可以,声音小一点。- //用小喇叭播放《可爱的蓝精灵The cute Smurfs》
- #define C3 165
- #define C4 175
- #define C5 196
- #define C6 220
- #define C7 247
- #define D0 -1
- #define D1 262
- #define D2 294
- #define D3 330
- #define D4 349
- #define D4s 370
- #define D5 392
- #define D6 440
- #define D7 494
- #define E1 523
- #define E1s 554
- #define E2 587
- #define E3 659
- #define E4 698
- #define E4s 740
- #define E5 784
- #define E6 880
- //音阶对应的频率
- #define WHOLE 4
- #define HALF 2
- #define QTR 1
- //定义全拍和半拍
- int tune[] =
- {
- D3,D4, D5,E3,E1,D5,D3,D2,D3,D4,E2,D7,D4,D2,D1,D2,D3,D2,D3,D4,D3,D4,
- D5,D3,D4,D6,D5,D6, D7,E1,E1s,E2,E2,E3,E4,E4s,E5,D0,C5, D1,D3,C5,D3,D1,D3,C5,
- D3,D4,D5,D4,D3,D4,D5,D4,D3,D4,D5,D5,D4s,D5,E3,E1,//在山的那边海的那边有一群蓝精灵
- D2,D3,D4,D3,D4,E2,D7,D2,D3,D4,D3,D4,D6,D5,//他们活泼又聪明,他们调皮又灵敏
- D3,D4,D5,D4,D3,D4,D5,D4,D3,D4,D5,D5,D4s,D5,E3,E2,//他们自由自在生活在那绿色的大森林
- D2,D3,D4,D3,D4,E2,E1,D7,D6,D7,E1,//他们善良勇敢相互都关心
- E1,D5,D5,E3,E3,E1,D5,D3, D3,D5,D4,E2,E2,D7,D4,D2,//哦,可爱的蓝精灵,哦,可爱的蓝精灵
- D2,D3,D4,D5,D4,D3,D4,D5,D4,D3,D4,D5,D5,D4s,D5,E1,E3,//他们齐心合力开动脑筋斗败了格格巫
- D2,D3,D4,D3,D4,E2,E1,D7,D6,D7,E1,//他们唱歌跳舞快乐多欢欣
- }; //曲子的音符部分
- int duration[]=
- {
- 1,1,2,2,2,2,4+2,1,1,2,2,2,2,4+2,1,1,2,1,1,2,1,1,
- 2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,2,4,2,2,2,2,2,2,2,
- 1,1,2,2,2,2,2,2,2,2,2,1,1,2,2,4+2,
- 1,1,2,2,2,2,4+2,1,1,2,2,2,2,4+2,
- 1,1,2,2,2,2,2,2,2,2,2,1,1,2,2,4+2,
- 1,1,2,2,2,2,2,2,2,2,4,
- 4,4,4,2,2,4,4,4+4,4,4,4,2,2,4,4,4+4,
- 4+2,1,1,2,2,2,2,2,2,2,2,2,1,1,2,2,4+2,
- 1,1,2,2,2,2,2,2,2,2,4+4
- }; //曲子的节拍部分,用一个序列定义为duration
- int length;//定义一个变量,后面用来表示共有多少个音符
- int tonePin=9;//喇叭用9引脚
- void setup() {
- pinMode(tonePin,OUTPUT);//设置喇叭的pin为输出模式
- length = sizeof(tune)/sizeof(tune[0]);
- }
- void loop() {
- for(int x=0;x<length;x++) //循环音符的次数
- {
- tone(tonePin,tune[x]);//此函数依次播放tune序列里的数组,即每个音符
- delay(130*duration[x]);//每个音符持续的时间,即节拍duration,120是调整时间的,越大,曲子速度越慢,越小曲子速度越快
- noTone(tonePin);//停止当前音符,进入下一音符
- }
- delay(2000);//等待2秒后,循环重新开始
- }
复制代码 |