Juego en el arduino


integrantes del grupo:

 haydn andre valencia

yurani andrea osorio

jivi daza 


grado:
11-2-1


colegio:
 institución educativa juan pablo II


profesores:
 julian, didier 

Utilidad y Aplicación

Este juego en el Arduino tiene una única utilidad y aplicación y es la del entretenimiento, ya que al ser un juego se utiliza para pasar los tiempos libres y dar un rato de diversión a quienes lo utilizan, no obstante el LCD y el Arduino se pueden configurar de otras maneras para que cumplan otras funciones, como dar la fecha y la hora.



materiales:
(1) LCD 2x16 Azul
(1) Arduino Uno R3
(1) Protoboard 830
(1) potenciometro 10k (1) Resistencia 100 ohmios (1) Resistencia 10K ohmios (1) Pulsador (15) Jumper Macho - Macho

Materiales:
1) LCD 2x16 Azul


2) Arduino Uno R3

Resultado de imagen para Arduino Uno R3
3)  Protoboard 830
Resultado de imagen para protoboard 8 30
4) potencimetro

5) Resistencia 100 ohmios




6)
7)
Resultado de imagen para pulsador

8)






programa: 

/*  Atrapa los 7 Fugitivos 
 *  Juego con LCD 2x16 y Arduino
 *  By: www.elprofegarcia.com  componentes comprados en: www.dinastiatecnologica.com
 *  Atrapa los fugitivos al poner tierra en el puerto analogo A5
 */
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);   // Configura pines de salida para el LCD
  
// defino los nuevo caracter o imagenes
byte letra1[8] = { B01110, B01110, B01110, B00100, B11111, B00100, B01010, B01010 }; // fugitivo
byte letra2[8] = { B01110, B01110, B01110, B10101, B01110, B00100, B01010, B10001 }; 

byte letra3[8] = { B00100, B00100, B00100, B00100, B00100, B11111, B01110, B00100 }; //flecha

byte letra0[8] = { B00000, B00000, B00000, B00000, B00000, B00000, B00000, B00000 }; // blanco
byte letra4[8] = { B01110, B01110, B01110, B11111, B10101, B01110, B01010, B11011 }; // atrapado

int x=0;
int y=1;
int retardo=200;
int presos=0;
int libres=7;
int fallas=0;
int puntaje=0;

void setup() {
  lcd.begin(16, 2);               // Configura el LCD con 16 columnas y 2 filas
  lcd.createChar(1, letra1);      // asigna los nuevos caracteres por numeros
  lcd.createChar(2, letra2);
  lcd.createChar(3, letra3);
  lcd.createChar(0, letra0);
  lcd.createChar(4, letra4);
} 

void loop() {
 
  lcd.setCursor(0, 0);   // Posicion del letrero en 0,0
  lcd.print(presos); 
  lcd.setCursor(2, 0);   // Posicion del letrero en 2,0
  lcd.print("F"); 
  lcd.setCursor(3, 0);   // Posicion del letrero en 3,0
  lcd.print(fallas); 
  lcd.setCursor(0, 1);   // Posicion del letrero en 0,1
  lcd.print(libres); 

  lcd.setCursor(x,y);  // imagen fugitivo 1
  lcd.write(byte(1)); 
  delay(retardo);

  lcd.setCursor(x,y);  // imagen fugitivo 2
  lcd.write(byte(2));
  delay(retardo);

  lcd.clear();        // borrar Pantalla

  lcd.setCursor(14,0); // Flecha en posicion 
  lcd.write(byte(3));
  
  lcd.setCursor(5, 0);   // Posicion del letrero
  lcd.print("Atrapelo"); 
  
  if (analogRead(A5)<= 10) {  // Si es oprimido el interruptor A5
    lcd.setCursor(14,0);       // Se borra la flecha
    lcd.write(byte(0));
    lcd.setCursor(14,1);      // Baja la flecha
    lcd.write(byte(3));
   
    if (x == 14) {            // Si coincide en la posicion 14 y es capturado
       lcd.setCursor(5, 0);
       lcd.print("Bien   ."); 
       lcd.setCursor(x,y);    // Coloca imagen de capturado
       lcd.write(byte(4));
       presos++;   
       libres--;  
    }
    else{                        // Cuando no es capturado
       lcd.setCursor(5, 0);
       lcd.print("Fallo  ."); 
       lcd.setCursor(x,y);       // donde quedo el corredor, Imagen de que sigue libre 
       lcd.write(byte(2));
       fallas++;
    }
  delay(3000);                     // Espera 3 segundos
  }
 
  x=x+1;                         // avanza el corredor
  
  if (x>=16) {
     x=0;                        // al pasar regresa al inicio
  }  
 
  retardo = random(1,150);       // Escoge un retardo aleatorio

 if (fallas == 3) {                 // Si coincide en la posicion 14 y es capturado
       lcd.clear();                 // borrar Pantalla
       lcd.setCursor(3, 0);
       lcd.print("NO PUDO ..."); 
       puntaje=presos-fallas;
       lcd.setCursor(3, 1);
       lcd.print("Puntaje:"); 
       lcd.setCursor(12, 1);
       lcd.print(puntaje); 
       delay (7000);
       presos=0;
       libres=7;
       fallas=0;
       lcd.clear();        // borrar Pantalla
    }
 if (libres == 0) {             // Si coincide en la posicion 14 y es capturado
       lcd.clear();             // borrar Pantalla
       lcd.setCursor(3, 0);
       if (fallas == 0) {              // Si no hubo fallas
         lcd.print("EXCELENTE!!!!"); 
       }
       else{
         lcd.print("PUEDE MEJORAR");    // si termino pero con alguna falla
       }
       
       puntaje=presos-fallas;
       lcd.setCursor(3, 1);
       lcd.print("Puntaje:"); 
       lcd.setCursor(12, 1);
       lcd.print(puntaje);               // Puntaje final 
       delay (7000);
       presos=0;
       libres=7;
       fallas=0;
       lcd.clear();        // borrar Pantalla
    }   
}



Tutoriales: https://www.youtube.com/watch?v=ALn3BpR2PbM
https://www.youtube.com/watch?v=qfBdpioysRE
https://www.youtube.com/watch?v=LQyE7ZkYQws

Comentarios

Publicar un comentario