Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DE TAMAZUNCHALE
13ISC108
13ISC086
13ISC089
13ISC095
4 SEMESTRE VESPERTINO
03/06/2015
ELABORO:
RACIEL RAMREZ CERVANTES
ESTEBAN GUERRERO HERNNDEZ
SABINO DE LA CRUZ CRUZ
ESPERANZA MARTNEZ HERRERA
Elaborado por:
Sabino de la Cruz, Esperanza Martnez,
Raciel Ramrez, Esteban Guerrero.
MATERIAL:
1 placa Arduino
1 protoboard
Cable UTP para realizar conexiones
5 LEDs Rojos
5 LEDs verdes
5 LEDs amarillos
6 resistencias de 220 ohm
1 Zumbador
3 push
Elaborado por:
Sabino de la Cruz, Esperanza Martnez,
Raciel Ramrez, Esteban Guerrero.
IDE
DESARROLLO:
El esquema que debemos hacer es muy fcil, solo necesitamos tres leds (en nuestro caso
usaremos 5 leds rojos, 5 leds verdes y 5 leds amarillos) tres pulsadores y un zumbador
para dar sonido al juego:
Elaborado por:
Sabino de la Cruz, Esperanza Martnez,
Raciel Ramrez, Esteban Guerrero.
Elaborado por:
Sabino de la Cruz, Esperanza Martnez,
Raciel Ramrez, Esteban Guerrero.
double zumbador = 7;
//-----------------------------------// Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600);
randomSeed(analogRead(0));
pinMode(pulsador_Rojo,INPUT); // Pulsador 1 como entrada
pinMode(led_Rojo,OUTPUT); //El LED 1 Rojo como salida
pinMode(pulsador_Verde,INPUT); // Pulsador 2 como entrada
pinMode(led_Verde,OUTPUT); //El LED Verde como salida
pinMode(pulsador_Amarillo,INPUT); // Pulsador 3 como entrada
pinMode(led_Amarillo,OUTPUT); //El LED Rojo como salida
pinMode(zumbador,OUTPUT); // El zumbador como salida
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{
// cuando se da energia al Arduino
if(digitalRead(pulsador_Rojo) == HIGH && digitalRead(pulsador_Verde) == HIGH
&& digitalRead(pulsador_Amarillo) == HIGH)
{
nivel = 0;
status_simon = 0;
delay(TIME_INTERVAL*2);
return;
}
// Reproducir secuencia
if(status_simon == 0){
Serial.println("\n\n--------------------------\nMODO IMPRESION SEC.");
if( nivel == 0 )
{
nivel = 1;
randomSeed(analogRead(0));
secuencia = random(1,COLORS+1);
}
else
{
Elaborado por:
Sabino de la Cruz, Esperanza Martnez,
Raciel Ramrez, Esteban Guerrero.
nivel++;
randomSeed(analogRead(0));
double double_rand = random(1,COLORS+1);
double double_exp = (double)pow(10,nivel-1 );
//double value = double_rand * double_exp;
//secuencia = secuencia + value;
secuencia = (secuencia * 10) + double_rand;
}
Serial.print("\nlvl: ");
Serial.print(nivel);
Serial.print("\n");
Serial.print("Secu.: ");
Serial.print(secuencia);
Serial.print("\n");
imprimir_secuencia();
status_simon = 1;
colores_pulsados = 0;
}
// Secuencia del usuario - Registro de los pulsadores
else if(status_simon == 1){
if(digitalRead(pulsador_Rojo) == HIGH){
Serial.println("Rojo pulsado");
pulsar_elemento('1');
colores_pulsados++;
verificar_secuencia('1');
}
else if(digitalRead(pulsador_Verde) == HIGH){
Serial.println("Verde pulsado");
pulsar_elemento('2');
colores_pulsados++;
verificar_secuencia('2');
}
else if(digitalRead(pulsador_Amarillo) == HIGH){
Serial.println("Amarillo pulsado");
pulsar_elemento('3');
colores_pulsados++;
verificar_secuencia('3');
}
}
}
//-----------------------------------//Funcion Verificar secencia
//-----------------------------------void verificar_secuencia(char color)
Elaborado por:
Sabino de la Cruz, Esperanza Martnez,
Raciel Ramrez, Esteban Guerrero.
{
String string = String(round(secuencia) );
Serial.print("\nColor usuario:");
Serial.print(color);
Serial.print(" Seq. Valor:");
Serial.print(string[colores_pulsados-1]);
if(string[colores_pulsados-1] == color){
if(nivel == colores_pulsados){
Serial.print("\nFin del lvl: ");
Serial.print(nivel);
status_simon = 0;
}
else{
// CONTINUA MODO USUARIO
Serial.print("\nContinuar modo usuario");
}
}
else{
// ERROR DE USUARIO
Serial.print("\nERROR DE USUARIO");
status_simon = 4;
error_usuario();
}
}
//-----------------------------------//Funcion Imprimir secuencia
//-----------------------------------void imprimir_secuencia()
{
String string = String(round(secuencia) );
Serial.print("\nIMPRIMIR SERIE: ");
Serial.print(string);
for(int i = 0 ; i < nivel ;i++)
{
delay(TIME_INTERVAL*0.5);
pulsar_elemento(string[i]);
}
}
//-----------------------------------// PULSAR ELEMENTO
// Luce el led del indicador pasdo por parmetro
//-----------------------------------void pulsar_elemento(char num_color)
{
Elaborado por:
Sabino de la Cruz, Esperanza Martnez,
Raciel Ramrez, Esteban Guerrero.
switch(num_color){
case '1':
Serial.println("\nPulsador Rojo ON");
digitalWrite(led_Rojo,HIGH);
sonarTono(TONO_1,TIME_INTERVAL*0.5);
digitalWrite(led_Rojo,LOW);
Serial.println("Pulsador Rojo OFF");
break;
case '2':
Serial.println("\nPulsador Verde ON");
digitalWrite(led_Verde,HIGH);
sonarTono(TONO_2,TIME_INTERVAL*0.5);
digitalWrite(led_Verde,LOW);
Serial.println("Pulsador Verde OFF");
break;
case '3':
Serial.println("\nPulsador Amarillo ON");
digitalWrite(led_Amarillo,HIGH);
sonarTono(TONO_3,TIME_INTERVAL*0.5);
digitalWrite(led_Amarillo,LOW);
Serial.println("Pulsador Amarillo OFF");
break;
}
}
//-----------------------------------// ERROR USUARIO
// Realiza una secuencia de luz y sonido diez veces seguidas para indicar que
// el usuario ha errado al introducir la
// secuencia
//-----------------------------------------void error_usuario()
{
for(int i=0; i<3; i++)
{
delay(TIME_INTERVAL*0.3);
digitalWrite(led_Rojo, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(led_Verde, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(led_Amarillo, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(zumbador,HIGH);
sonarTono(TONO_ERROR,TIME_INTERVAL);
digitalWrite(zumbador,LOW);
digitalWrite(led_Rojo, LOW); // turn the LED off by making the voltage LOW
digitalWrite(led_Verde, LOW); // turn the LED off by making the voltage LOW
digitalWrite(led_Amarillo, LOW); // turn the LED off by making the voltage LOW
Elaborado por:
Sabino de la Cruz, Esperanza Martnez,
Raciel Ramrez, Esteban Guerrero.
}
}
//-----------------------------------// SONAR TONO
//-----------------------------------void sonarTono(int tono, int duracion)
{
tone(zumbador,tono,duracion);
delay(duracion);
}
//FIN DEL PROGRAMA
RESULTADOS:
Elaborado por:
Sabino de la Cruz, Esperanza Martnez,
Raciel Ramrez, Esteban Guerrero.
CONCLUSIONES:
Con la presente practica se logro crear un juego que puede ayudar al aprendizaje
ya que es un claro ejercitador de la memoria, al seguir secuencias de luces.
El aprendizaje puede adaptarse, en este caso para el aprendizaje de colores y
para poner a prueba la memoria. Pero con una modificacin puede servir para
aprender las figuras geometricas.
Elaborado por:
Sabino de la Cruz, Esperanza Martnez,
Raciel Ramrez, Esteban Guerrero.