#include <Wire.h> /*~ Librería I2C ~*/
#include <LiquidCrystal_I2C.h> /*~ Librería LCD ~*/
// Importante: TXS0108E
/*~ Página para crear iconos personalizados ~*/
/*~ https://maxpromer.github.io/LCD-Character-Creator/ ~*/
/*~ Los siguientes arrays contienen un caracter, es decir se indica que pixel se enciendo o apaga dependiendo si es 1 o 0 ~*/
/*~ Icono o caracter 1 ~*/
byte caracter1 [ ] = {
B01110, /*~ ⬜⬛⬛⬛⬜~*/
B01010, /*~ ⬜⬛⬜⬛⬜~*/
B01110, /*~ ⬜⬛⬛⬛⬜~*/
B11111, /*~ ⬛⬛⬛⬛⬛~*/
B00100, /*~ ⬜⬜⬛⬜⬜~*/
B00100, /*~ ⬜⬜⬛⬜⬜~*/
B01010, /*~ ⬜⬛⬛⬛⬜~*/
B10001 /*~ ⬛⬜⬜⬜⬛~*/
};
LiquidCrystal_I2C lcd ( 0x27, 16, 2 ); /*~ Instancia de la clase para el manejo de la pantalla ( Dirección I2C, columnas, filas ) ~*/
void setup ( void ) {
lcd.init ( ); /*~ Inicializar la pantalla LCD ~*/
lcd.createChar ( 0, caracter1 ); /*~ Indicar al programa que genere un caracter a partir del array de bits. ~*/
}
void loop ( void ) {
lcd.backlight ( ); /*~ Encender la luz de fondo. ~*/
delay ( 1000 ); /*~ Esperar 1 segundo. ~*/
lcd.noBacklight ( ); /*~ Apagar la luz de fondo. ~*/
delay ( 1000 ); /*~ Esperar 1 segundo. ~*/
lcd.backlight ( ); /*~ Encender la luz de fondo. ~*/
lcd.setCursor ( 0, 0 ); /*~ ( columnas, filas) Ubicamos el cursor en la primera posición(columna:0) de la primera línea(fila:0) ~*/
lcd.write ( 0 ); /*~ Mostramos nuestro primer icono o caracter ~*/
delay ( 1000 ); /*~ Esperar 1 segundo ~*/
for ( uint8_t i = 0; i < ( 40 ); i++ ) { /*~ Este ciclo es para que se vea como se recorren los caracteres, si no es colocado se vería muy rápido ~*/
lcd.scrollDisplayRight ( ); /*~ Recorrer caracteres de derecha a izquierda ~*/
delay ( 100 ); /*~ Esperar 100 milisegundos ~*/
}
for ( uint8_t i = 0; i < ( 40 ); i++ ) { /*~ Este ciclo es para que se vea como se recorren los caracteres, si no es colocado se vería muy rápido ~*/
lcd.scrollDisplayLeft ( ); /*~ Recorrer caracteres de izquierda a derecha ~*/
delay ( 100 ); /*~ Esperar 100 milisegundos ~*/
}
lcd.clear ( ); /*~ Limpiar pantalla ~*/
}