Skip to content

Instantly share code, notes, and snippets.

@jmtexla68
Created February 17, 2021 19:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jmtexla68/ee2cf236e123ef781f4aae5673b1320c to your computer and use it in GitHub Desktop.
Save jmtexla68/ee2cf236e123ef781f4aae5673b1320c to your computer and use it in GitHub Desktop.
Creación de caracteres especiales desplazándose en un display de 16x2. Símbolo de los Vengadores
/*
***********************************************
Tutorial Arduino LCD
https://conbotassucias.wordpress.com/
***********************************************
Demostracion del uso de un display de 16x2
La libreria LiquidCrystal funciona con todos los
displays compatibles con el driver Hitachi HD44780.
Este ejemplo imprime un mensaje y caracteres personalizados
utilizando las dos lineas y desplazando el mensaje
El circuito:
* LCD RS (pin 4) -> pin 12 arduino (digital)
* LCD E_nable (pin 6) -> pin 11 arduino (digital)
* LCD D4 (pin 11) -> pin 5 arduino
* LCD D5 (pin 12) -> pin 4 arduino
* LCD D6 (pin 13) -> pin 3 arduino
* LCD D7 (pin 14) -> pin 2 arduino
* LCD R/W (pin 5) -> tierra
* Potenciometro de 10K:
* terminales exteriores a +5V y tierra
* terminal central a LCD Vo (pin 3)
*/
// incuimos la libreria:
#include <LiquidCrystal.h>
// inicializamos la libreria con los pines de
// la interfaz
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Declaramos el mensaje o caracteres.
byte V1[8] = {
B00000,
B00001,
B00010,
B00110,
B01100,
B11000,
B10000,
B10000
};
byte V2[8] = {
B11001,
B00011,
B00010,
B00110,
B00100,
B01100,
B01000,
B11111
};
byte V3[8] = {
B11010,
B11010,
B11001,
B11001,
B11000,
B11000,
B11000,
B11000
};
byte V4[8] = {
B00000,
B00000,
B00000,
B00000,
B10000,
B10000,
B01000,
B01000
};
byte V5[8] = {
B10000,
B11001,
B01001,
B00011,
B00110,
B00110,
B01100,
B00000
};
byte V6[8] = {
B11111,
B10000,
B00000,
B00000,
B00000,
B10011,
B01110,
B00000
};
byte V7[8] = {
B11111,
B11000,
B11000,
B11000,
B11000,
B11011,
B01110,
B00000
};
byte V8[8] = {
B01000,
B11000,
B10000,
B00000,
B00000,
B00000,
B00000,
B00000
};
//Linea
byte e[8] = {
B00000,
B00010,
B00010,
B00110,
B00110,
B01110,
B01110,
B11110
};
void setup() {
// configuramos el numero de columnas y filas:
lcd.begin(16, 2);
// limpiamos el lcd
lcd.clear();
//asociamos caracteres para cada byte
lcd.createChar(0, V1);
lcd.createChar(1, V2);
lcd.createChar(2, V3);
lcd.createChar(3, V4);
lcd.createChar(4, V5);
lcd.createChar(5, V6);
lcd.createChar(6, V7);
lcd.createChar(7, V8);
}
void loop() {
//desplazamos el texto
//la función hacia la izquierda aparentemente
//no hace nada y en principio se puede quitar
for (int a=0;a>10;a++){
lcd.scrollDisplayLeft();
delay(300);
}
for(int a=0;a<10;a++){
lcd.scrollDisplayRight();
delay(300);
}
//situamos cada byte sobre el cursor correspondiente
lcd.setCursor(0, 0);
lcd.write(byte(0));
lcd.setCursor(1, 0);
lcd.write(byte(1));
lcd.setCursor(2, 0);
lcd.write(byte(2));
lcd.setCursor(3, 0);
lcd.write(byte(3));
///
lcd.setCursor(0, 1);
lcd.write(byte(4));
lcd.setCursor(1, 1);
lcd.write(byte(5));
lcd.setCursor(2, 1);
lcd.write(byte(6));
lcd.setCursor(3, 1);
lcd.write(byte(7));
lcd.print("conbotassucias");
/// ........................
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment