Stap 4:
ongeldig playTone() {}
lange elapsed_time = 0;
Als (tone_ > 0) {als (tone_ == 3400 || tone_ == 3038) {}
digitalWrite (2, HIGH);
digitalWrite (3, laag);
digitalWrite (4, laag);
}
else if (tone_ == 2028 || tone_ == 2272) {}
digitalWrite (2, laag);
digitalWrite (3, hoge);
digitalWrite (4, laag); }
else if (tone_ == 2864 || tone_ == 2550) {digitalWrite (2, laag);
digitalWrite (3, laag);
digitalWrite (4, HIGH); } / / Als dit niet een Rest beat, terwijl de Toon heeft
minder lang dan 'duur', pulse spreker hoge en lage gespeeld
terwijl (elapsed_time < duur) {}
digitalWrite(speakerOut,HIGH);
delayMicroseconds(tone_ / 2);
DOWN
digitalWrite (speakerOut, laag);
delayMicroseconds(tone_ / 2);
Bijhouden van hoe lang we gepulseerde
elapsed_time += (tone_);
}
}
else {/ / Rest verslaan; lus keer uitstellen
for (int j = 0; j < rest_count; j ++) {/ / zienoot op rest_count
delayMicroseconds(duration);
}
}
}
Hier zien we het gebruik van de LED's als decoratie verlichting voor het project, iedere keer dat een opmerking wordt gespeeld, een van hen is gonna worden verlicht, aangezien de melodie kort is het is ok om gebruiken slechts 3 LED's. herinner me om toe te voegen:
VOID Setup {}
pinMode (speakerOut, OUTPUT);
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
}
om de code naar indentify zou wat de output bronnen voor dit project.
tot slot laten we wikkel het met:
void loop {}
Instellen van een teller te trekken uit de melodie [] en beats]
de waarde van de ldr leest:
sensorValue = analogRead(sensorPin);
if(sensorValue<500) {}
//
//
for (int i = 0; ik < MAX_COUNT; i ++) {}
tone_ = melodie [i];
Beat = slagen [i];
duur = beat * tempo; Timing instellen
playTone();
Een pauze tussen notities...
delayMicroseconds(pause);
}
Dit deel leest de gegevens van de LDR en geïdentificeerd indien er voldoende licht in de enviorement, als niet dan de melodie begint en de LED's licht volgens het.