Programmera en enkel melodi på en Arduino Uno (2 / 3 steg)
Steg 2: Skriv din skiss (kod)
Jag sökte för en befintlig skiss på särskilt låten, men jag kunde inte hitta en. Då jag tänkte att jag kunde redigera en befintlig skiss av en annan melodi, men alla de som jag hittade var ganska komplex-många med över hundra rader kod (inte nämna en mycket mer komplex krets!) Med begränsad tid och erfarenhet ville jag skriva så enkel och kort en kod som möjligt, så jag valde för att sätta alla journalanteckningar i följd på en kodrad. Det enda problemet med det var varje ton skulle spelas med samma värde (varaktighet) och du kunde inte inkludera vilar (pauser). För att bekämpa problemet jag använde 4/4 tid och en enda beat eller en fjärdedelsnot, tilldelats varje ton. Så om en särskild kommentar i låten var ska hållas för 3 taktslag (eller en punktavgränsad halv anteckning) in jag helt enkelt anteckningen som 3 gånger. Till exempel om mitten C (262) behövs för att hållas för 2 beats, trädde jag det två gånger. Piezo separata inte identiska anteckningar i följd så detta gjorde en halv-Obs!) För att beakta vilar utökade jag längden på den föregående anteckningen att fylla utrymmet. Jag faktiskt först angivna vilar som en 0, förutsatt att 0 Hz skulle motsvara inte ljud-men det gjorde istället en hemsk surrande ljud! Okej, är så här koden!
1 int speakerPin = 12;
2
3 int numTones = 62;
4 int toner [] = {587, 784, 880, 988, 988, 988, 988, 988, 988, 988, 932, 988, 784, 784, 784, 784, 784, 784, 784, 880, 988, 1047, 1047, 1319, 1319, 1319, 1319, 1175, 1047, 988, 988, 988, 784, 880, 988, 1047, 1047, 1319, 1319, 1319, 1319, 1175, 1047, 988, 988, 784, 784, 784, 784, 880, 988, 988, 988, 1047, 880, 880, 880, 988 784, 784, 784, 784};
5 / / du är min sol
6
7 void setup()
8 {
9 för (int jag = 0; jag < numTones; i ++)
10 {
11 ton (speakerPin, tones[i]);
12 delay(290);
13}
14 noTone(speakerPin);
15}
16
17 void loop()
18 {
19}
Du kan kopiera och klistra in, skriva ut den och skriva koden själv, ta tag i det från Codebender eller prova det här på detta instructable, se nedan! Vill du ha en annan sång? Bara ersätta den numeriska koden på linje 4 med din egen, redigera det totala antalet toner på linje 3 och justera tempot med försening värde på linje 12.