Datos
Alumno: Jesús Rivas Perretta
Asignatura: Innovación Docente de la Especialidad de Tecnología
Titulación: Máster
Universitario en Profesor de Educación Secundaria Obligatoria y
Bachillerato, Formación Profesional y Enseñanza de Idiomas.
Centro: Universidad de Salamanca
Curso: 2022/23
Descripción del proyecto
El siguiente prototipo consiste en una caja de música electrónica que lleva grabado en memoria el tema principal de la popular canción de Juego de Tronos.
Para la reproducción de la música utilizará un zumbador que por medio de la función tone() reproduce las notas una a una asignando valores de frecuencia (Hz) y duración (ms).
Un pulsador asignado a un pin con el modo de resistencia Pullup actúa como botón para iniciar la reproducción, y un conjunto de leds de colores se iluminarán al mismo tiempo que suena cada una de las notas cuando la foto resistencia detecte que el nivel de luz del entorno es bajo, manteniéndose apagadas cuando haya luz.
Componentes
Placa Arduino Uno R3.
1 Piezo.
1 Resistencia 1 KΩ.
1 Fotorresistencia.
1 Pulsador.
8 Leds de colores.
8 Resistencias de 220 Ω.
Esquema
El esquema de conexiones de la placa es el siguiente:
Código
El código utilizado para la reproducción de la música y el encendido de los leds no utiliza librerías externas. Es el que se muestra a continuación:
int Contador = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(7, INPUT_PULLUP);
}
void loop() {
int Boton = digitalRead(7);
if (Boton == LOW) {
for (int i = 0; i < 4; i++){
// Sol
tone (8, 392, 500);
if (analogRead(A0) < 750){
digitalWrite(2, HIGH);}
digitalWrite(5, LOW);
delay(500);
// Do
tone (8, 262, 500);
if (analogRead(A0) < 750){
digitalWrite(3, HIGH);}
digitalWrite(2, LOW);
delay(500);
// Mi
tone (8, 330, 250);
if (analogRead(A0) < 750){
digitalWrite(4, HIGH);}
digitalWrite(3, LOW);
delay(250);
// Fa
tone (8, 350, 250);
if (analogRead(A0) < 750){
digitalWrite(5, HIGH);}
digitalWrite(4, LOW);
delay(250);
}
// Sol
tone (8, 392, 1000);
if (analogRead(A0) < 750){
digitalWrite(2, HIGH);
digitalWrite(9, HIGH);}
digitalWrite(5, LOW);
delay(1000);
// Do
tone (8, 262, 1000);
if (analogRead(A0) < 750){
digitalWrite(3, HIGH);
digitalWrite(10, HIGH);}
digitalWrite(2, LOW);
digitalWrite(9, LOW);
delay(1000);
// Mi
tone (8, 330, 250);
if (analogRead(A0) < 750){
digitalWrite(4, HIGH);
digitalWrite(11, HIGH);}
digitalWrite(3, LOW);
digitalWrite(10, LOW);
delay(250);
// Fa
tone (8, 350, 250);
if (analogRead(A0) < 750){
digitalWrite(5, HIGH);
digitalWrite(12, HIGH);}
digitalWrite(4, LOW);
digitalWrite(11, LOW);
delay(250);
// Sol
tone (8, 392, 1000);
if (analogRead(A0) < 750){
digitalWrite(2, HIGH);
digitalWrite(9, HIGH);}
digitalWrite(5, LOW);
digitalWrite(12, LOW);
delay(1000);
// Do
tone (8, 262, 1000);
if (analogRead(A0) < 750){
digitalWrite(3, HIGH);
digitalWrite(10, HIGH);}
digitalWrite(2, LOW);
digitalWrite(9, LOW);
delay(1000);
// Re
tone (8, 293, 250);
if (analogRead(A0) < 750){
digitalWrite(4, HIGH);
digitalWrite(11, HIGH);}
digitalWrite(3, LOW);
digitalWrite(10, LOW);
delay(250);
// Mi
tone (8, 330, 250);
if (analogRead(A0) < 750){
digitalWrite(5, HIGH);
digitalWrite(12, HIGH);}
digitalWrite(4, LOW);
digitalWrite(11, LOW);
delay(250);
// Re
tone(8, 293, 1500);
if (analogRead(A0) < 750){
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
}
}
}
No hay comentarios:
Publicar un comentario