Caracteres en Display LCD

Descripción de la actividad

El día lunes fuimos al laboratorio de informática para seguir con la programación del display LCD, esta programación nos servirá para que cuando estemos jugando con el pinball y la bola llegue al lugar de su origen, una fotocelda lo detecte y haga que el display muestre las vidas, representadas con corazones y al final muestre la palabra "perdiste".

Para lograr que esta programación funcione, se necesita el siguiente código:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


int pinFoto=A0;

int vidas=0;
void setup() {
 lcd.begin(16, 2);           // Fijamos el numero de caracteres y filas
 pinMode (pinFoto,INPUT);

}


void loop() {

 int valor=analogRead (pinFoto);
 delay(1000);
 if(valor<100)
 {
   vidas=vidas-1;
 }
 if (vidas==0)
 {
   lcd.clear();
   lcd.setCursor(1, 1);   // Ponte en la line 1, posicion 6    
   lcd.print("Perdiste") ;
   delay (5000);
   vidas=3;
 }
 lcd.clear ();
 printVidas ();
}

void printVidas(){

  if (vidas==3)
    lcd.setCursor(0,0)
    lcd.write(1);
    lcd.write(1);
    lcd.write(1);
  }
else if (vidas==2){
 lcd.setCursor(0,0)
 lcd.write(1);
 lcd.write(1);
 }
 else if (vidas==1){
  lcd.setCursor(0,0)
 lcd.write(1);
 }
}
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int pinFoto=A0;

int vidas=0;
byte cor_izq[8]={
  0b00000000,
0b00000100,
0b00001110,
0b00001111,
0b00000111,
0b00000011,
0b00000001,
0b00000000   };
byte cor_der[8]={
  0b00000000,
0b00000010,
0b00000111,
0b00000111,
0b00000110,
0b00000100,
0b00000000,
0b00000000   };

void setup() {

 lcd.begin(16, 2);           // Fijamos el numero de caracteres y filas
 pinMode (pinFoto,INPUT);
 lcd.createChar (1,cor_izq);
 lcd.createChar (2,cor_der);
}


void loop() {

 int valor=analogRead (pinFoto);
 lcd.setCursor(0,1);   // Ponte en la line 1, posicion 6    
   lcd.print(valor) ;

   lcd.setCursor(6,1);   // Ponte en la line 1, posicion 6    

   lcd.print(vidas) ;
 delay(1000);
 if(valor<600)
 {
  vidas=vidas-1;
 }
 else if (vidas<=0)
 {
   lcd.clear();
   lcd.setCursor(0,0);   // Ponte en la line 1, posicion 6    
   lcd.print("Perdiste") ;
   delay (5000);
   vidas=3;
 }
 lcd.setCursor(0,0);
 printVidas ();
}
void printVidas(){
  if (vidas==3)
  {
    lcd.write(1);
    lcd.write(2);
    
    lcd.write(1);
    lcd.write(2);

    lcd.write(1);

    lcd.write(2);
}
  else if (vidas==2){
    lcd.write(1);
    lcd.write(2);
    
    lcd.write(1);
    lcd.write(2);
}
  else if (vidas==1){
    lcd.write(1);
    lcd.write(2);
}
}


Conclusiones

En conclusión, esta programación fue una de las mas difíciles debido a que es muy larga pero también va a ser una de las mas importantes para este pinball.

Dificultad
La dificultad que se me presento esta ocasión fue que en vez de bajar los corazones dependiendo de las vidas, simplemente se quedaba así "❤te", es decir se me  juntaron la palabra perdiste con los corazones.

Comentarios

Entradas populares de este blog

Practica #1 - Encender Led con fotocelda y pulsador

Practica #4 - Encender LED con pulsador y buzzer

Práctica 1: Carrito evita obstáculos