Paso 3: Terminar el código
Mirando el cuadro, la
si (lightSensorValue < 700 & & soundSensorValue > 800)
dice tu arduino que si la cantidad de luz que detecta detecta menos de 700 y el sonido es más de 800 entonces se encenderá la luz
digitalWrite (ledPin, HIGH)
A la vez la siguiente parte del código está diciendo su arduino para jugar la melodía.
para (int thisNote = 0; thisNote < longitud; thisNote ++) {}
/ / para calcular la duración de la nota, tomar un segundo / / dividido por el tipo de nota. / / por ejemplo cuarto de nota = 1000 / 4, corchea = 1000/8, etc. int noteDuration = 1000/noteDurations [thisNote]; tono (9, melody[thisNote],noteDuration); si (millis() > lastTimechecked + sleepduration) { rotura; } / / para distinguir las notas, establecer un tiempo mínimo entre ellos. / / Duración + 30% de la nota parece que funciona bien: int pauseBetweenNotes = noteDuration * 1,30; Delay(pauseBetweenNotes); / / detener la reproducción de tono: noTone(9);* Su código completo es este: *
int lightSensorPin = 0;
int lightSensorValue = 0;
int ledPin = 13;
int soundSensorPin = 1;
int soundSensorValue = 0;
int speakerPin = 9;
int longitud = 42;
/ / 523 = C, 784 = G, 880 = A, F = 698, 659 = E, 587 = D
int melodía [] = {}
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
};
/ / Nota duración: 4 = cuarto nota, 8 = corchea, etc. : lastTimechecked largo sin signo = 0; void setup () {} void loop () {} Si (lightSensorValue < 700 & & soundSensorValue > 800) {} int noteDuration = 1000/noteDurations [thisNote]; 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 sleepduration = 18000; música //how juega para
Serial.Begin (9600); //serial monitor
pinMode (ledPin, salida);
}
lightSensorValue = analogRead (lightSensorPin); valor de sensor de luz //read
soundSensorValue = analogRead (soundSensorPin); valor de sensor de micrófono //read
Serial.println (soundSensorValue);
lastTimechecked = millis ();
digitalWrite (ledPin, HIGH); enciende LED
para (int thisNote = 0; thisNote < longitud; thisNote ++) {}
tono (9, melody[thisNote],noteDuration);
Si (millis() > lastTimechecked + sleepduration) {}
rotura;
}
int pauseBetweenNotes = noteDuration * 1.30;
Delay(pauseBetweenNotes);
}
retrasar (1000);
}
Else {}
digitalWrite (ledPin, LOW);