Baby Night Light (3 / 4 steg)
Steg 3: Efterbehandling koden
Titta på bilden, den
om (lightSensorValue < 700 & & soundSensorValue > 800)
säger din arduino som om mängden ljus kände upptäcks under 700 och ljudet är över 800 då ljuset tänds
digitalWrite (ledPin, hög)
Samtidigt är nästa del av koden talar om din arduino att spela melodin.
för (int thisNote = 0; thisNote < längd; thisNote ++) {
/ / för att beräkna noterar varaktighet, ta en sekund / / dividerat med Noteringstyp. / / e.g. kvartalet Obs = 1000 / 4, åttondelen noterar = 1000/8, etc. int noteDuration = 1000/noteDurations [thisNote]; ton (9, melody[thisNote],noteDuration), om (millis() > lastTimechecked + Sömnvaraktighet) { semester. } / / för att skilja anteckningarna, som en minsta tid mellan dem. / / tonens längd + 30% verkar fungera bra: int pauseBetweenNotes = noteDuration * 1,30; Delay(pauseBetweenNotes); / / sluta tonen: noTone(9);* Din ifyllda koden är detta: *
int lightSensorPin = 0; int ledPin = 13.
int lightSensorValue = 0;
int soundSensorPin = 1;
int soundSensorValue = 0;
int speakerPin = 9;
int längd = 42.
/ / 523 = C, 784 = G, 880 = A, 698 = F, 659 = E, 587 = D
int melodi [] = {
523 523, 784, 784, 880, 880, 784,
698, 698, 659, 659, 587, 587, 523,
784, 784, 698, 698, 659, 659, 587,
784, 784, 698, 698, 659, 659, 587,
523 523, 784, 784, 880, 880, 784,
698, 698, 659, 659, 587, 587, 523
};
/ / Obs varaktigheter: 4 = fjärdedelsnot, 8 = åttondelen noterar, etc. : osignerade långa lastTimechecked = 0; Ogiltiga inställningar () { Ogiltig loop () { om (lightSensorValue < 700 & & soundSensorValue > 800) { lastTimechecked = millis (); digitalWrite (ledPin, hög); slå på LED för (int thisNote = 0; thisNote < längd; thisNote ++) { int noteDuration = 1000/noteDurations [thisNote]; int pauseBetweenNotes = noteDuration * 1,30; noTone(9); } }
int noteDurations [] = {
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2
};
int Sömnvaraktighet = 18000; //how lång musik spelar för
Serial.BEGIN (9600); //serial monitor
pinMode (ledPin, produktionen);
}
lightSensorValue = analogRead (lightSensorPin); //read ljussensor värde
soundSensorValue = analogRead (soundSensorPin); //read mikrofon sensor värde
Serial.println (soundSensorValue);
tonen (9, melody[thisNote],noteDuration);
om (millis() > lastTimechecked + Sömnvaraktighet) {
bryta;
}
Delay(pauseBetweenNotes);
}
fördröjning (1000);
}
annat {
digitalWrite (ledPin, låg);