Created
February 17, 2021 19:44
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
*********************************************** | |
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