Así quedó el sketch:
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int pinFotocelda=A0;
int vidas=3;
byte corazon_izq[8]={0b00000000,
0b00000001,
0b00000011,
0b00000011,
0b00000001,
0b00000000,
0b00000000
};
byte corazon_der[8]={ 0b00000000,
0b00000000,
0b00000010,
0b00010111,
0b00011111,
0b00011110,
0b00011100,
0b00001000
};
void setup() {
pinMode(pinFotocelda,INPUT);
lcd.begin(16, 2);
lcd.createChar(1,corazon_izq);
lcd.createChar(2,corazon_der);
}
void loop() {
int dato=analogRead(pinFotocelda);
delay(1000);
if(dato<300)
{
vidas=vidas-1;
}
if(vidas==0)
{
lcd.clear();
lcd.setCursor(1, 1);
lcd.print("¡JUEGO FINALIZADO!");
vidas=3;
}
lcd.setCursor(0, 0);
printVidas();
}
void printVidas(){
if(vidas==3)
{
lcd.clear();
lcd.write(1);
lcd.write(2);
lcd.write(1);
lcd.write(2);
lcd.write(1);
lcd.write(2);
}
else if(vidas==2){
}
}
uwuwuwuwuwuwuwuwuwuwuw (esto es un separador)
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int pinFotocelda=A0;
int vidas=3;
byte corazon_izq[8]={0b00000000,
0b00000000,
0b00000001,
0b00000011,
0b00000011,
0b00000001,
0b00000000,
0b00000000,
0b0000000
};
byte corazon_der[8]={ 0b00000000,
0b00000000,
0b00000010,
0b00010111,
0b00011111,
0b00011110,
0b00011100,
0b00001000,
0b0000000
};
void setup() {
pinMode(pinFotocelda,INPUT);
lcd.begin(16, 2);
lcd.createChar(1,corazon_izq);
lcd.createChar(2,corazon_der);
}
void loop() {
int dato=analogRead(pinFotocelda);
delay(1000);
if(dato<300)
{
vidas=vidas-1;
}
if(vidas==0)
{
lcd.clear();
lcd.setCursor(1, 1);
lcd.print("¡JUEGO FINALIZADO!");
vidas=3;
}
lcd.setCursor(0, 0);
printVidas();
}
void printVidas(){
if(vidas==3)
{
lcd.clear();
lcd.write(1);
lcd.write(2);
lcd.write(1);
lcd.write(2);
lcd.write(1);
lcd.write(2);
}
else if(vidas==2){
}
}
Al final, supuse que para implementar o crear cualquier figura como un carácter personalizado, la clave estaría en tener una disposición clara tanto de la figura como del display donde se vaya a mostrar.
