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.
<p>int speakerPin = 9;<br> int length = 15; // the number of notes char notes[] = "ccggaagffeeddc "; // change these lines according to the song int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };// change these lines according to the song</p><p> int tempo = 300;</p><p>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); } }</p><p>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 };</p><p> // play the tone corresponding to the note name for (int i = 0; i < 8; i++) { if (names[i] == note) { playTone(tones[i], duration); } } }</p><p>void setup() { pinMode(speakerPin, OUTPUT); }</p><p>void loop() { for (int i = 0; i < length; i++) { if (notes[i] == ' ') { delay(beats[i] * tempo); // rest } else { playNote(notes[i], beats[i] * tempo); }</p><p> // pause between notes delay(tempo / 2); } }</p>