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.
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
Publicar un comentario