Linkit en som gåva - Grattis på födelsedagen Tune (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.
int speakerPin = 9;
int längd = 28; antalet anmärkningar
char noterar [] = "GGAGcB GGAGdc GGxecBA yyecdc";
int slår [] = {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;
{Ogiltig 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);
}
}
void playNote (char note, int varaktighet) {
char namn [] = {'C', 'D ","E","F","G","A","B",
'c', 'd ","e","f","g","a","b",
'x', 'y' };
int toner [] = {1915, 1700, 1519, 1432, 1275, 1136, 1014,
956, 834, 765, 593, 468, 346, 224,
655, 715};
int SPEE = 5;
spela tonen motsvarar tonens namn
för (int jag = 0; jag < 17; i ++) {
om (namn [i] == OBS) {
int newduration = varaktighet/SPEE;
playTone (toner [i], newduration);
}
}
}
void setup() {
pinMode (speakerPin, produktionen);
}
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);
}
paus mellan anteckningar
Delay(tempo);
}
}