【arduino】谁能一句一句的解释给我听啊~~
arduino吧
全部回复
仅看楼主
level 5
houjiedidi 楼主
int speakerPin = 9;
int length = 15; // the number of notes
char notes[] = "ccggaagffeeddc "; // a space represents a rest
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
int tempo = 300;
void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) {
digitalWrite(speakerPin, HIGH);
delayMicroseconds(tone);
digitalWrite(speakerPin, LOW);
delayMicroseconds(tone);
}
}
void playNote(char note, int duration) {
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
// 播放音符对应名称
for (int i = 0; i < 8; i++) {
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}
void setup() {
pinMode(speakerPin, OUTPUT);
}
void loop() {
for (int i = 0; i < length; i++) {
if (notes[i] == ' ') {
delay(beats[i] * tempo); // rest
} else {
playNote(notes[i], beats[i] * tempo);
}
// pause between notes
delay(tempo / 2);
}
}
这个程序也有注释,但是我看不懂英语,谁能一句一句的解释给我听,修改哪一段是输出能改动输出音频?
2017年04月17日 03点04分 1
level 5
houjiedidi 楼主
自顶一下啊~[泪][泪]~
2017年04月17日 04点04分 2
level 8
int speakerPin = 9;
int长度= 15;/ /注释的数量
char[]=指出“ccggaagffeeddc”;/ /空间是一种休息
int节拍[]= { 1,1,1,1,1,1,2,1,1,1,1,1,1,2,4 };
int节奏= 300;
空白playTone(int,int持续时间){
(长时间我= 0;<时间* 1000 l;i + =语气* 2){
digitalWrite(speakerPin、高);
delayMicroseconds(音);
digitalWrite(speakerPin、低);
delayMicroseconds(音);
}
}
空白playNote(char,int持续时间){
char[]名字= { ' c ',' d ',‘e’,‘f’,‘g’,‘‘,‘b’,' c ' };
音调int[]= { 1915,1700,1519,1915,1700,1136,1014,956 };
/ /播放音符对应名称
for(int i = 0;我+ +){ < 8;
如果(名称[我]= =注意){
playTone(音调(我),持续时间);
}
}
}
无效的设置(){
pinMode(speakerPin、输出);
}
无效循环(){
for(int i = 0;我+ +){ <长度;
如果(指出[我]= = ' '){
延迟(节拍[我]*节奏);/ /休息
其他} {
playNote(指出[我],节拍[我]*节奏);
}
/ /暂停之间的笔记
延迟(节奏/ 2);
}
}
2017年04月17日 05点04分 3
level 8
国际speakerpin = 9;
长度= 15;/ /笔记的数量
字符注释[] =“ccggaagffeeddc”;//空间代表休息
INT节拍= { 1,1,1,1,1,1,2,1,4,1,1,1,1,1,2;
速度= 300;
无效的普通(int的语气,int时间){
对(我= 0;i <时间* 1000l;我=音* 2){
digitalwrite(speakerpin,高);
delaymicroseconds(音);
digitalwrite(speakerpin,低);
delaymicroseconds(音);
}
}
无效playnote(焦注,int时间){
字符名称= { = C ',' d ',' e ',' F ',' G ',' A ',' B ',' C ' };
INT音调= { 1915,1700,1519,1432,1275,1136,1014,956;
/ /播放音符对应名称
对于(int i = 0;i < 8;i){
如果(名字i = =注){
普通(音[我],持续时间);
}
}
}
设置() { void
pinmode(speakerpin,输出);
}
循环() { void
对于(int i = 0;i <长度;i){
如果(附注i = = '){
延迟(节拍[我] *节奏)
其他{ }
playnote(笔记[我],[我] *节拍节奏);
}
/在音符之间停顿
延迟(速度/ 2);
}
}
2017年04月17日 05点04分 4
level 8
int speakerPin = 九;
int 长度 = 15;便笺的数量
char 笔记 [] = "ccggaagffeeddc";空间代表休息
int 节拍 [] = {1个, 1个, 1个, 一, 一, 一, 一, 一, 一, 一, 一, 一, 一, 一, 一, 一
int 节奏 = 300;
void playTone (int 音调, int 持续时间) {
为 (长 i = 零; 我的持续时间 * 1000L; i = 音调 * 二) {
digitalWrite (speakerPin, 高);
delayMicroseconds (口气);
digitalWrite (speakerPin, 低);
delayMicroseconds (口气);
}
}
void playNote (char 音符, int 持续时间) {
char 名称 [] = {"c"、"、"、"e"、"f"、"g"、"a"、"b"、"c"};
int 色调 [] = {1519、1432、1275、1136、1014、956};
播放音符对应名称
对于 (int i = 零; i; i + +) {
如果 (名称 [i] = = 笔记) {
playTone (音调 [i], 持续时间);
}
}
}
无效设置 () {
pinMode (speakerPin, 输出);
}
void 循环 () {
对于 (int i = 零; i 长度; i + +) {
如果 (备注 [i] = = ') {
延迟 (节拍 [i] * 节奏);休息
其他{
playNote (笔记 [i], 节拍 [i] * 节奏);
}
在便笺之间暂停
延迟 (节奏/二);
}
}
2017年04月17日 05点04分 5
level 3
666
2017年04月17日 08点04分 6
1