大连好人
发表于 2013-1-25 22:08:48
让我回想起刚上大学时在 386 上用 C 控制 PC 喇叭奏东方红的时光,支持一下楼主。。。。。
丧心病狂
发表于 2013-2-4 14:55:32
谢谢楼主~找个喇叭去试试!
探索者
发表于 2013-2-5 16:19:07
新人,好贴顶起
maplezxcwc
发表于 2013-2-20 11:56:45
牛X啊,学习了。。。
Fortware
发表于 2013-2-27 18:10:44
赠人玫瑰,手留余香。
一份好的资料,放在机器中会成为垃圾文件;
如果共享出来,就能有成千上万的朋友受益;
每人贡献一点,中国的电子技术将迅速提高。:lol
佩服啊
丧心病狂
发表于 2013-3-2 20:56:45
感觉d3用365比较好听一点。。。
丧心病狂
发表于 2013-3-2 21:24:13
365还是不对。。。真的好难试。。。
wali
发表于 2013-3-3 09:58:10
丧心病狂 发表于 2013-3-2 21:24 static/image/common/back.gif
365还是不对。。。真的好难试。。。
370呢前面有人说的 你试试
万马奔腾
发表于 2013-3-24 21:51:30
好东西收藏了 但是我有个问题怎么将人说的话解码放在ARDUINO上播放出来呢?
浅缘
发表于 2013-4-6 21:28:21
果断顶起!!!
温暖冰岩
发表于 2013-4-9 23:42:40
{:soso_e132:} 改了好几遍,改成下面的样子,在每句后面加一点休止符,好一点。不过到第五行往后面就乱了,不明白是什么原因,谱子是最简单的(两只老虎)。帮忙指点指点吧,大哥?{:soso_e160:}
#define NOTE_G0 -1
#define NOTE_G1 393
#define NOTE_G2 441
#define NOTE_G3 495
#define NOTE_G4 556
#define NOTE_G5 624
#define NOTE_G6 661
#define NOTE_G7 742
#define NOTE_GL1 196
#define NOTE_GL2 221
#define NOTE_GL3 234
#define NOTE_GL4 262
#define NOTE_GL5 294
#define NOTE_GL6 330
#define NOTE_GL7 371
#define NOTE_GH1 786
#define NOTE_GH2 882
#define NOTE_GH3 990
#define NOTE_GH4 1049
#define NOTE_GH5 1178
#define NOTE_GH6 1322
#define NOTE_GH7 1484
//以上部分是定义是把每个音符和频率值对应起来,其实不用打这么多,但是都打上了,后面可以随意编写D调的各种歌,我这里用NOTE_D+数字表示音符,NOTE_DH+数字表示上面有点的那种音符,NOTE_DL+数字表示下面有点的那种音符。这样后面写起来比较好识别。
#define WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.125
#define SIXTEENTH 0.625
//这部分是用英文对应了拍子,这样后面也比较好看
int tune[]=
{
NOTE_G1,NOTE_G2,NOTE_G3,NOTE_G1,NOTE_G0,
NOTE_G1,NOTE_G2,NOTE_G3,NOTE_G1,NOTE_G0,
NOTE_G3,NOTE_G4,NOTE_G5,NOTE_G0,
NOTE_G3,NOTE_G4,NOTE_G5,NOTE_G0,
NOTE_G5,NOTE_G6,NOTE_G5,NOTE_G4,NOTE_G3,NOTE_G1,NOTE_G0,
NOTE_G5,NOTE_G6,NOTE_G5,NOTE_G4,NOTE_G3,NOTE_G1,NOTE_G0,
NOTE_G3,NOTE_GL5,NOTE_G1,NOTE_G0,
NOTE_G3,NOTE_GL5,NOTE_G1,NOTE_G0,
NOTE_G3,NOTE_GL5,NOTE_G1,NOTE_G0,
};//这部分就是整首曲子的音符部分,用了一个序列定义为tune,整数
float duration[]=
{
1,1,1,1,0.125,
1,1,1,1,0.125,
1,1,1,1+1,0.25,
1,1,1,1+1,0.25,
0.5,0.5,0.5,0.5,1,1,0.125,
0.5,0.5,0.5,0.5,1,1,0.125,
1,1,1+1,0.25,
1,1,1+1,0.25,
1,1,1+1+0.125,
};//这部分是整首曲子的接拍部分,也定义个序列duration,浮点(数组的个数和前面音符的个数是一样的,一一对应么)
int length;//这里定义一个变量,后面用来表示共有多少个音符
int tonePin=5;//蜂鸣器的pin
void setup()
{
pinMode(tonePin,OUTPUT);//设置蜂鸣器的pin为输出模式
length = sizeof(tune)/sizeof(tune);//这里用了一个sizeof函数,可以查出tone序列里有多少个音符
}
void loop()
{
for(int x=0;x<length;x++)//循环音符的次数
{
tone(tonePin,tune);//此函数依次播放tune序列里的数组,即每个音符
delay(800*duration);//每个音符持续的时间,即节拍duration,400是调整时间的越大,曲子速度越慢,越小曲子速度越快,自己掌握吧
noTone(tonePin);//停止当前音符,进入下一音符
}
delay(5000);//等待5秒后,循环重新开始
}
温暖冰岩
发表于 2013-4-9 23:44:41
#define NOTE_G0 -1
#define NOTE_G1 393
#define NOTE_G2 441
#define NOTE_G3 495
#define NOTE_G4 556
#define NOTE_G5 624
#define NOTE_G6 661
#define NOTE_G7 742
#define NOTE_GL1 196
#define NOTE_GL2 221
#define NOTE_GL3 234
#define NOTE_GL4 262
#define NOTE_GL5 294
#define NOTE_GL6 330
#define NOTE_GL7 371
#define NOTE_GH1 786
#define NOTE_GH2 882
#define NOTE_GH3 990
#define NOTE_GH4 1049
#define NOTE_GH5 1178
#define NOTE_GH6 1322
#define NOTE_GH7 1484
//以上部分是定义是把每个音符和频率值对应起来,其实不用打这么多,但是都打上了,后面可以随意编写D调的各种歌,我这里用NOTE_D+数字表示音符,NOTE_DH+数字表示上面有点的那种音符,NOTE_DL+数字表示下面有点的那种音符。这样后面写起来比较好识别。
#define WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.125
#define SIXTEENTH 0.625
//这部分是用英文对应了拍子,这样后面也比较好看
int tune[]=
{
NOTE_G1,NOTE_G2,NOTE_G3,NOTE_G1,NOTE_G0,
NOTE_G1,NOTE_G2,NOTE_G3,NOTE_G1,NOTE_G0,
NOTE_G3,NOTE_G4,NOTE_G5,NOTE_G0,
NOTE_G3,NOTE_G4,NOTE_G5,NOTE_G0,
NOTE_G5,NOTE_G6,NOTE_G5,NOTE_G4,NOTE_G3,NOTE_G1,NOTE_G0,
NOTE_G5,NOTE_G6,NOTE_G5,NOTE_G4,NOTE_G3,NOTE_G1,NOTE_G0,
NOTE_G3,NOTE_GL5,NOTE_G1,NOTE_G0,
NOTE_G3,NOTE_GL5,NOTE_G1,NOTE_G0,
NOTE_G3,NOTE_GL5,NOTE_G1,NOTE_G0,
};//这部分就是整首曲子的音符部分,用了一个序列定义为tune,整数
float duration[]=
{
1,1,1,1,0.125,
1,1,1,1,0.125,
1,1,1,1+1,0.25,
1,1,1,1+1,0.25,
0.5,0.5,0.5,0.5,1,1,0.125,
0.5,0.5,0.5,0.5,1,1,0.125,
1,1,1+1,0.25,
1,1,1+1,0.25,
1,1,1+1+0.125,
};//这部分是整首曲子的接拍部分,也定义个序列duration,浮点(数组的个数和前面音符的个数是一样的,一一对应么)
int length;//这里定义一个变量,后面用来表示共有多少个音符
int tonePin=5;//蜂鸣器的pin
void setup()
{
pinMode(tonePin,OUTPUT);//设置蜂鸣器的pin为输出模式
length = sizeof(tune)/sizeof(tune);//这里用了一个sizeof函数,可以查出tone序列里有多少个音符
}
void loop()
{
for(int x=0;x<length;x++)//循环音符的次数
{
tone(tonePin,tune);//此函数依次播放tune序列里的数组,即每个音符
delay(800*duration);//每个音符持续的时间,即节拍duration,400是调整时间的越大,曲子速度越慢,越小曲子速度越快,自己掌握吧
noTone(tonePin);//停止当前音符,进入下一音符
}
delay(5000);//等待5秒后,循环重新开始
}
fangtaonj
发表于 2013-4-10 10:24:35
非常好的帖子!感谢楼主!
马仔
发表于 2013-4-13 16:18:10
大强悍了!!!{:soso_e179:}
马仔
发表于 2013-4-13 23:40:55
小星星
#define NOTE_D0 -1
#define NOTE_D1 262
#define NOTE_D2 294
#define NOTE_D3 330
#define NOTE_D4 350
#define NOTE_D5 393
#define NOTE_D6 441
#define NOTE_D7 495
#define NOTE_DL1 131
#define NOTE_DL2 147
#define NOTE_DL3 165
#define NOTE_DL4 175
#define NOTE_DL5 196
#define NOTE_DL6 221
#define NOTE_DL7 248
#define NOTE_DH1 525
#define NOTE_DH2 589
#define NOTE_DH3 661
#define NOTE_DH4 700
#define NOTE_DH5 786
#define NOTE_DH6 882
#define NOTE_DH7 990
//以上部分是定义是把每个音符和频率值对应起来,其实不用打这么多,但是都打上了,后面可以随意编写D调的各种歌,我这里用NOTE_D+数字表示音符,NOTE_DH+数字表示上面有点的那种音符,NOTE_DL+数字表示下面有点的那种音符。这样后面写起来比较好识别。
#define WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.25
#define SIXTEENTH 0.625
//这部分是用英文对应了拍子,这样后面也比较好看
int tune[] =
{
NOTE_D1,NOTE_D1,NOTE_D5,NOTE_D5,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D0,
NOTE_D4,NOTE_D4,NOTE_D3,NOTE_D3,NOTE_D2,NOTE_D2,NOTE_D1,NOTE_D0,
NOTE_D5,NOTE_D5,NOTE_D4,NOTE_D4,NOTE_D3,NOTE_D3,NOTE_D2,NOTE_D0,
NOTE_D5,NOTE_D5,NOTE_D4,NOTE_D4,NOTE_D3,NOTE_D3,NOTE_D2,NOTE_D0,
NOTE_D1,NOTE_D1,NOTE_D5,NOTE_D5,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D0,
NOTE_D4,NOTE_D4,NOTE_D3,NOTE_D3,NOTE_D2,NOTE_D2,NOTE_D1,NOTE_D0,
};//这部分就是整首曲子的音符部分,用了一个序列定义为tune,整数
float duration[]=
{
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
};//这部分是整首曲子的接拍部分,也定义个序列duration,浮点(数组的个数和前面音符的个数是一样的,一一对应么)
int length;//这里定义一个变量,后面用来表示共有多少个音符
int tonePin=5;//蜂鸣器的pin
void setup()
{
pinMode(tonePin,OUTPUT);//设置蜂鸣器的pin为输出模式
length = sizeof(tune)/sizeof(tune);//这里用了一个sizeof函数,可以查出tone序列里有多少个音符
}
void loop()
{
for(int x=0;x<length;x++)//循环音符的次数
{
tone(tonePin,tune);//此函数依次播放tune序列里的数组,即每个音符
delay(400*duration);//每个音符持续的时间,即节拍duration,400是调整时间的越大,曲子速度越慢,越小曲子速度越快,自己掌握吧
noTone(tonePin);//停止当前音符,进入下一音符
}
delay(5000);//等待5秒后,循环重新开始
}
页:
1
2
3
4
[5]
6
7
8
9
10