JUEGO DE SKATE CON ARDUINO UNO Y PANTALLA LCD 

Planos:


Nota: El pulsador va conectado en el pin 7 no en el 2.

Codigo:

#include <LiquidCrystal.h>//libreria de la pantalla 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configura los pines de salida para la lcd

byte letra1[8] = { B01110, B00100, B11111, B01110, B01010, B01010, B11111, B01010 };//dibujo1
byte letra2[8] = { B01110, B00100, B11111, B01110, B11011, B00000, B11111, B11111 };// dibujo 2
byte letra6[8] = { B01110, B10101, B11111, B01110, B01010, B01010, B11111, B01010 }; dibujo 3

byte letra0[8] = { B00000, B00000, B00000, B00000, B00000, B00000, B00000, B00000 };

byte letra3[8] = { B00000, B00000, B00000, B11111, B11111, B11111, B11111, B11111 };// caja 1
byte letra4[8] = { B00000, B11111, B11111, B11111, B11111, B11111, B11111, B11111 };// caja 2
byte letra5[8] = { B01110, B11111, B11111, B11111, B11111, B11111, B11111, B11111 };// caja 3

//Declaración de variables 
int x=15;
int y=1;
int obstaculos=0;
int vel=300;
int puntaje=0;
int GameOver=3;



void setup(){
  lcd.begin(16, 2);
  lcd.createChar(1, letra1);
  lcd.createChar(2, letra2);
  lcd.createChar(3, letra3);
  lcd.createChar(4, letra4);
  lcd.createChar(5, letra5);
  lcd.createChar(0, letra0);
  lcd.createChar(6, letra6);
}
void loop(){
  
  lcd.setCursor(7, 0); //Posición del nombre del canal 
  lcd.print("Electron");
   
  lcd.setCursor(0, 0); //Coloca el numero 0 
  lcd.print(obstaculos);
  
  lcd.setCursor(x,y);//Posicionamiento de cajas 
  lcd.write(byte(3));
  delay(vel);
  
  lcd.setCursor(x,y);
  lcd.write(byte(4));
  delay(vel);
  
  lcd.setCursor(x,y);
  lcd.write(byte(5));
  delay(vel);

  lcd.clear();
  
  lcd.setCursor(GameOver, 1); 
  
  lcd.setCursor(3, 1); // Posición del dibujo 1 
  lcd.write(byte(1));

  
  if (analogRead(7)<= 12){ //Declaramos la condicional que le permite saltar 
    lcd.setCursor(3, 1);
    lcd.write(byte(0));
    lcd.setCursor(3, 0);
    lcd.write(byte(2));
  }
     else if(3 == x){  //Si el dibujo choca con la caja GameOver y muestra el puntaje 
      lcd.clear();
      lcd.setCursor(3, 0);
      lcd.print("Game Over");
      lcd.setCursor(7, 1);
      lcd.write(byte(6));
      delay(3000);
      puntaje=obstaculos;
      lcd.setCursor(3, 1);
      lcd.print("Puntaje:");
      lcd.setCursor(12, 1);
      lcd.print(puntaje);
      delay(6000);
      obstaculos=0;
     }

   x=x-1;          // Movimiento de la caja hacia la izquierda                
  
  if (x<=0) {  //Si llega a la posición 0 reinicia en la 15   
     x=15;                        
  } 
  
 vel = random(1,200);

if(GameOver == x){ //Cuenta cada caja pasada 
  lcd.clear();
  obstaculos++;
}


}

Comentarios

Entradas populares de este blog