Christmas melodi på LinkIt en (3 / 4 steg)
Steg 3: kod
Här är den allmänna koden skickas till LinkIt en, den kod gör LinkIt en skicka en fyrkantsvåg av lämplig frekvens till piezo, generera motsvarande tonen.
Koden kan hittas nedan och du kommer att kräva en modifierad Arduino IDE att arbeta med en LinkIt styrelsen att ladda upp koden.
< p > int speakerPin = 9. < br >
int längd = 15. antalet anmärkningar
char noterar [] = "ccggaagffeeddc"; ändra dessa raderna enligt låten
int slår [] = {1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4} ;// ändra dessa raderna enligt låten < /p >< p >
int tempo = 300; < /p >< p > annullera playTone (int tonen, int längd) {
för (länge jag = 0; jag < varaktighet * 1000L; i += tonen * 2) {
digitalWrite (speakerPin, hög);
delayMicroseconds(tone);
digitalWrite (speakerPin, låg);
delayMicroseconds(tone);
}
} < /p >< p > void playNote (char note, int varaktighet) {
char namn [] = {'c', 'd ","e","f","g","a","b","C"};
int toner [] = {1915, 1700, 1519, 1432, 1275, 1136, 1014, 956}; < /p >< p > / / spela tonen motsvarar tonens namn
för (int jag = 0; jag < 8; i ++) {
om (namn [i] == OBS) {
playTone (toner [i], varaktighet);
}
}
} < /p >< p > void setup() {
pinMode (speakerPin, produktionen);
} < /p >< p > void loop() {
för (int jag = 0; jag < längd; i ++) {
om (anteckningar [i] == "") {
fördröjning (beats [i] * tempo); resten
} annat {
playNote (anteckningar [i], beats [i] * tempo);
} < /p >< p > / / paus mellan anteckningar
Delay(tempo / 2);
}
} < /p >