quarta-feira, 12 de julho de 2017

JOGUINHO NO DISPLAY I2C #2

// 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;

// 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 Matinho[8] = {
  B00100,
  B01110,
  B11111,
  B11111,
  B00100,
  B00100,
  B00100,
  B00100
};
//***************** obstaculo 3*****************
byte nuvenzinha[8] = {
  B00000,
  B00000,
  B00000,
  B01110,
  B11111,
  B11111,
  B00000,
  B00000,
};
//***************** obstaculo 4*****************
byte smiley4[8] = {
  B00000,
  B00000,
  B00000,
  B00000,
  B01110,
  B01110,
  B01110,
  B00100
};
//***************** 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, Matinho);
  lcd.createChar(3, nuvenzinha);
  lcd.createChar(4, smiley4);
  lcd.createChar(5, smiley5);
}

void loop()
{
   lcd.setCursor(11, 1);
      lcd.write(byte(2));// Matinho
     
     
     
      lcd.setCursor(nuvenzinha_pos, 0);
      lcd.write(byte(3));// Matinho
      delay (500);
       lcd.setCursor(nuvenzinha_pos, 0);
      lcd.write(" ");// Matinho
     
      nuvenzinha_pos= nuvenzinha_pos-1;
      if(nuvenzinha_pos == 0)
      {
        nuvenzinha_pos = 15;
      }
     
     
  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')
    {
      lcd.setCursor(linha, 1);
      lcd.write(" ");
      lcd.setCursor(linha, 0);
      lcd.write(byte(0));
      delay(500);
      lcd.clear();
    
    
    }
     if (comando == '2')
    {
     
      lcd.setCursor(linha, 1);
      lcd.write(" ");
     
      lcd.setCursor(linha, 1);
      lcd.write(byte(1));
      delay(500);
      lcd.clear();
    
    
    }
     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));
      delay(500);
    
    
    }
   
    if (comando == '9')
    {
      lcd.setCursor(linha, 1);
      lcd.write(" ");
      linha= linha +2;
      lcd.setCursor(linha, 0);
      lcd.write(byte(0));
      delay(500);
      lcd.clear();
    
    
    
    }
    if (comando == '7')
    {
      lcd.setCursor(linha, 1);
      lcd.write(" ");
      linha= linha -2;
      lcd.setCursor(linha, 0);
      lcd.write(byte(0));
      delay(500);
      lcd.clear();
    }
  }
  lcd.setCursor(linha, 1);
  lcd.write(byte(0));
/*
  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