/********************************************************************************************
Este codigo muestra texto en una pantalla
LCD usando 8 bits y sin librerias.
Mar 21
Eric Buenrostro G.
********************************************************************************************/
#define RS 5
#define EN 6
// Pines de LCD RS, EN, D0, D1, D2, D3, D4, D5, D6, D7
byte pines[] = {RS, EN, 7, 8, 9, 10, 11, 12, 13, 14};
void setup() {
for(byte i = 0; i < 10; i++){
pinMode(pines[i], OUTPUT);
}
EnviaComando(0x38); // Datos de 8 bits, display de 2x16 y caracteres de 5x8
EnviaComando(0x0C); // Pantalla activada, cursor apagado, parpadeo apagado
EnviaComando(0x01); // Limpiar pantalla
}
void loop() {
ColocarCursor(0, 0); // Coloca cursor en la primera linea primera columna
ImprimirEnLCD("Practica LCD");
delay(1000);
EnviaComando(0x01); // Limpiar pantalla
ColocarCursor(0, 2); // Coloca cursor en la primera linea tercera columna
ImprimirEnLCD("TEC SALTILLO");
delay(1000);
EnviaComando(0x01); // Limpiar pantalla
ColocarCursor(0, 3); // Coloca cursor en la primera linea cuarta columna
ImprimirEnLCD("PRIETOS EN");
ColocarCursor(1, 4); // Coloca cursor en la segunda linea quinta columna
ImprimirEnLCD("APRIETOS");
delay(1000);
EnviaComando(0x01); // Limpiar pantalla
}
void EnviaComando(byte comando) {
digitalWrite(RS, LOW); // RS en bajo para habilitar envío de comandos
EnviarDatos(comando);
}
void ImprimirEnLCD(char mensaje[]) {
digitalWrite(RS, HIGH); // Set RS pin high for data mode
byte i = 0;
while (mensaje[i] != '\0') {
EnviarDatos(mensaje[i]);
i++;
}
}
void EnviarDatos(byte data) {
for(byte i = 2; i < 10; i++){
digitalWrite(pines[i], (data >> (i-2)) & 0x01);
}
PulsoEnable();
}
void PulsoEnable() {
digitalWrite(EN, LOW);
delayMicroseconds(1);
digitalWrite(EN, HIGH);
delayMicroseconds(1);
digitalWrite(EN, LOW);
delayMicroseconds(2);
}
void ColocarCursor(int linea, int columna) {
byte LineasOffset[] = {0, 0x40};
byte posicionCursor = 0x80 + LineasOffset[linea] + columna;
EnviaComando(posicionCursor);
}Loading
esp32-s3-devkitc-1
esp32-s3-devkitc-1