Stap 3: Code
Hier is de algemene code om te worden geüpload naar de LinkIt One, de code maakt de LinkIt een Stuur een blokgolf van de juiste frequentie naar de piezo, het genereren van de bijbehorende Toon.
De code kan hieronder worden gevonden en u zal vereisen een gemodificeerde Arduino IDE om te werken met de LinkIt een bord voor het uploaden van de code.
int speakerPin = 9;int length = 28; // the number of noteschar notes[] = "GGAGcB GGAGdc GGxecBA yyecdc";int beats[] = { 2, 2, 8, 8, 8, 16, 1, 2, 2, 8, 8,8, 16, 1, 2,2,8,8,8,8,16, 1,2,2,8,8,8,16 };int tempo = 150;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', 'd', 'e', 'f', 'g', 'a', 'b', 'x', 'y' };int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956, 834, 765, 593, 468, 346, 224, 655 , 715 };int SPEE = 5;// play the tone corresponding to the note namefor (int i = 0; i < 17; i++) { if (names[i] == note) { int newduration = duration/SPEE; playTone(tones[i], newduration); }}}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);}}