1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| int length = 15; char notes[] = "ccggaagffeeddc"; int beats[] = {1,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(8, HIGH); delayMicroseconds(tone); digitalWrite(8, 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(8, OUTPUT); }
void loop() { for(int i=0; i<length; i++) { if(notes[i] == ' ') { delay(beats[i]*tempo); } else { playNote(notes[i], beats[i]*tempo); } delay(tempo/2); } }
|