Musik melodi som låter i mörkret (4 / 5 steg)
Steg 4:
void playTone() {
lång elapsed_time = 0;
om (tone_ > 0) {om (tone_ == 3400 || tone_ == 3038) {
digitalWrite (2, hög).
digitalWrite (3, låg).
digitalWrite (4, låg).
}
annat if (tone_ == 2028 || tone_ == 2272) {
digitalWrite (2, låg).
digitalWrite (3, hög).
digitalWrite (4, låg). }
annat if (tone_ == 2864 || tone_ == 2550) {digitalWrite (2, låg).
digitalWrite (3, låg).
digitalWrite (4, hög). } / / om detta inte är en resten beat, medan tonen har
spelat mindre långt än "varaktighet", puls högtalare hög och låg
medan (elapsed_time < varaktighet) {
digitalWrite(speakerOut,HIGH);
delayMicroseconds(tone_ / 2);
NED
digitalWrite (speakerOut, låg);
delayMicroseconds(tone_ / 2);
Hålla reda på hur länge vi pulsade
elapsed_time += (tone_);
}
}
annat {/ / resten slå, loop gånger försenar
för (int j = 0; j < rest_count; j ++) {/ / se anmärkning på rest_count
delayMicroseconds(duration);
}
}
}
Här kan vi se användningen av lysdioder som dekoration belysning för projektet, varje gång spelas en anteckning, en av dem kommer att tändas, eftersom låten är kort är det ok att använda endast 3 lysdioder. kom ihåg att lägga till:
void setup() {
pinMode (speakerOut, produktionen);
pinMode (2, utgång);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
}
för att koden för att kartlägga vore vad utdata källorna för detta projekt.
Slutligen låt oss avsluta det med:
void loop() {
Ställ in en räknare för att dra från melody [] och [slag]
Läs värdet från ldr:
sensorValue = analogRead(sensorPin);
IF(sensorValue<500) {
//
//
för (int jag = 0; jag < MAX_COUNT; i ++) {
tone_ = melodi [i];
slå = beats [i];
längd = beat * tempo; Ställ in timing
playTone();
En paus mellan anteckningar...
delayMicroseconds(pause);
}
denna del kommer att läsa data från LDR och identifiera om det finns tillräckligt med ljus i miljö, om inte då låten börjar och lysdioder ljus enligt det.