sexta-feira, 14 de julho de 2017

jogo lcd i2c

// Programa joguinho no display lcd i2c

int brilho = 0;
int tempo = 5;
int estado = 1;
float tencao = 0;
char comando = 'a';
int linha =7;
int nuvenzinha_pos =15;
int cachorro_pos = 0;
int nuven_tempo = 0;
int cachorro_tempo = 0;
int pulo_tempo = 0;
int de_pe_tempo = 1000;
int pulo = 0;

// PARAMETROS DO LCD ****************************************

#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADOR 0x3F // <<
#define BACKLIGHT_PIN 3
#define En 2
#define Rw 1
#define Rs 0
#define D4 4
#define D5 5
#define D6 6
#define D7 7
LiquidCrystal_I2C lcd(I2C_ADOR, En, Rw, Rs, D4, D5, D6, D7);

// **********************************************************



//******************personagem ***************
byte personagem_de_pe[8] = {
  B11111,
  B10101,
  B11111,
  B01110,
  B11111,
  B01110,
  B11111,
  B10001,
};

//***************** personagem agachado*****************
byte personagem_agachado[8] = {
  B00000,
  B11111,
  B10101,
  B11111,
  B01110,
  B11111,
  B01110,
  B11111,

};

//***************** obstaculo 2***01**************
byte arvore[8] = {
  B00100,
  B01110,
  B11111,
  B11111,
  B00100,
  B00100,
  B00100,
  B00100
};
//***************** obstaculo 3*****************
byte nuvenzinha[8] = {
  B00000,
  B00000,
  B00100,
  B01001,
  B11111,
  B01000,
  B00100,
  B00000,
};
//***************** obstaculo 4*****************
byte cachorro[8] = {
  B00000,
  B00000,
  B00000,
  B00010,
  B00011,
  B10010,
  B01110,
  B01010
};
//***************** chegada*****************
byte smiley5[8] = {
  B00000,
  B11111,
  B10001,
  B10001,
  B10001,
  B10001,
  B10001,
  B10001,
};

void setup()
{
  Serial.begin(9600);
  lcd.begin (16, 2);
  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
  lcd.setBacklight(HIGH);

  lcd.createChar(0, personagem_de_pe);
  lcd.createChar(1, personagem_agachado);
  lcd.createChar(2, arvore);
  lcd.createChar(3, nuvenzinha);
  lcd.createChar(4, cachorro);
  lcd.createChar(5, smiley5);
}

void loop()
{
      pulo = 0;
      lcd.setCursor(11, 1);
      lcd.write(byte(2));// arvore
     
      if(millis() > pulo_tempo)
      {
      lcd.setCursor((linha-1), 0);
      lcd.write("   ");
      de_pe_tempo = millis() +500;
      }
      if(millis() > de_pe_tempo)
      {
      lcd.setCursor(linha, 1);
      lcd.write(byte(0)); // tersonagem
      }
    
 //**************aviao**************************   
      lcd.setCursor(nuvenzinha_pos, 0);
      lcd.write(byte(3));// nuvem
     
     
     
      if(millis() > nuven_tempo)
      {
        nuven_tempo = millis() + 2000;
       lcd.setCursor(nuvenzinha_pos, 0);
      lcd.write(" ");// Matinho
    
      nuvenzinha_pos= nuvenzinha_pos-1;
      if(nuvenzinha_pos == 0)
      {
        nuvenzinha_pos = 15;
      }
     
      }
// *******************cachorro********************

       lcd.setCursor(cachorro_pos, 1);
      lcd.write(byte(4));// cachorro
     
       if(millis() > cachorro_tempo)
      {
        cachorro_tempo = millis() +1200;
       lcd.setCursor(cachorro_pos, 1);
      lcd.write(" ");// cachorro
    
      cachorro_pos= cachorro_pos+1;
      if(cachorro_pos == 15)
      {
        cachorro_pos = 0;
      }
     
      }
    
    
  if (Serial.available()) // verifica se existe algo digitado no monitor serial;
  {
    comando = Serial.read(); // carrega o valor digitado no monitor serial na variavel "comando";

    if (comando == '8') // personagem pula *********************
    {
     
     
      lcd.setCursor(linha, 1);
      lcd.write(" ");
      lcd.setCursor(linha, 0);
      lcd.write(byte(0));
      pulo_tempo = millis() + 500;
      pulo = 1;
      }
     
   
   
   
     if (comando == '2')
    {
    
      lcd.setCursor(linha, 1);
      lcd.write(" ");
    
      lcd.setCursor(linha, 1);
      lcd.write(byte(1));
    
   
   
    }
     if (comando == '6')
    {
      lcd.setCursor(linha, 1);
      lcd.write(" ");
      linha= linha +1;
      lcd.setCursor(linha, 1);
      lcd.write(byte(0));
      delay(500);
   
   
   
    }
    if (comando == '4')
    {
      lcd.setCursor(linha, 1);
      lcd.write(" ");
      linha= linha -1;
      lcd.setCursor(linha, 1);
      lcd.write(byte(0));
     
   
   
    }
  
    if (comando == '9')
    {
      lcd.setCursor(linha, 1);
      lcd.write(" ");
      linha= linha +1;
      lcd.setCursor(linha, 0);
      lcd.write(byte(0));
      linha = linha +1;
      pulo_tempo = millis() + 500;
   
   
    }
    if (comando == '7')
    {
      lcd.setCursor(linha, 1);
      lcd.write(" ");
      linha= linha -1;
      lcd.setCursor(linha, 0);
      lcd.write(byte(0));
      linha = linha -1;
      pulo_tempo = millis() + 500;
    }
  }
      if(linha == cachorro_pos)
      {
        lcd.clear();
        lcd.setCursor(1,0);
        lcd.write("O cachorro te");
        lcd.setCursor(4,1);
        lcd.write("PEGOU!!!!");
        cachorro_pos = cachorro_pos + 2;
        delay(5000);
        lcd.clear();
      }
      if(linha == nuvenzinha_pos && pulo == 1)
      {
        lcd.clear();
        lcd.setCursor(1,0);
        lcd.write("Voce bateu no");
        lcd.setCursor(4,1);
        lcd.write("AVIAO!!!!");
        nuvenzinha_pos = nuvenzinha_pos -2;
        delay(5000);
        lcd.clear();
      }
/*
  lcd.setCursor(1, 0);
  lcd.write(byte(1));
  lcd.setCursor(2, 0);
  lcd.write(byte(2));

  lcd.setCursor(0, 1);
  lcd.write(byte(3));
  lcd.setCursor(1, 1);
  lcd.write(byte(4));
  lcd.setCursor(2, 1);
  lcd.write(byte(5));

*/
  //lcd.scrollDisplayLeft();
  //delay(500);
}

Nenhum comentário:

Postar um comentário