// CÓDIGO SERIAL ESP32-S3.
// Programa que pregunta un número y lo muestra en pantalla.
//---------------------------------------------------------------------------//
// Librerias.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//---------------------------------------------------------------------------//
// Declaramos los pines conectados a la pantalla LCD.
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Declaramos la variable de valor ingresado.
int valor;
int parpadeo;
int i;
// Declaramos el pin a que está conectado el LED. En este caso es el pin 2.
int ledPin = 2;
// Declaramos la palabra ingresada que almacenará máximo 16 caracteres.
String palabra;
//---------------------------------------------------------------------------//
void msm_principal() {
// Mensaje principal.
Serial.println("");
Serial.println("------------------------------------------------------");
Serial.println("Seleccione una opción:");
Serial.println("");
Serial.println("1. Encender y apagar LED");
Serial.println("2. Escribir en pantalla LCD");
Serial.println("");
Serial.println("NOTA: Solo puede ingresar el valor 1 o 2.");
}
void mostrar_LCD(){
lcd.clear();
lcd.setCursor(0, 0); // El cursor se posiciona en el fila y columna 0,
lcd.print("Su Palabra es:"); // Imprimen la palabra "Su palabra es:".
lcd.setCursor(0, 1); // El cursor se posiciona en el fila 1 y columna 0,
lcd.print(palabra); // Imprimen la palabra ingresada.
}
void setup() {
// El valor 9600 corresponde a la velocidad de comunicación.
Serial.begin(115200);
// Mensaje principal.
msm_principal();
//Inicialización del pin del LED como salida (Pin 2).
pinMode(ledPin, OUTPUT);
Wire.begin(10, 8);
lcd.init(); // Inicializa pantalla.
lcd.backlight(); // Se le agrega brillo a la pantalla.
lcd.setCursor(0, 0); // El cursor se posiciona en el fila y columna 0,
lcd.print("Bienvenido!"); // Imprimen la palabra "Bienvenido!"
}
//Iniciación de la función bucle.
void loop() {
// Verificamos si hay un byte en el puerto serial.
while(Serial.available() == 0){
}
// Si hay un byte en el puerto serie, se lee y asigna
// a la variable valor1.
valor = Serial.read();
if(valor == '1'){
Serial.println("");
Serial.println("------------------------------------------------------");
Serial.println("Se ha ingresado el número 1.");
Serial.println("Se encenderá el LED morado.");
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(2000);
// Mensaje principal.
msm_principal();
}
if(valor == '2'){
Serial.println("");
Serial.println("------------------------------------------------------");
Serial.println("Se ha ingresado el número 2.");
Serial.println("");
Serial.println("¿Qué palabra quiere escribir en la pantalla LCD?");
Serial.println("");
Serial.println("Puede ser cualquier palabra.");
Serial.println("");
Serial.println("NOTA: Debe contener como máximo 16 letras sin espacio,");
Serial.println("de lo contrario no podrá evidenciarla en pantalla.");
while(Serial.available() == 0){
}
delay(5000);
palabra = Serial.readString();
Serial.print("La palabra ingresada es:");
Serial.print(palabra);
// Se muestra en la pantalla LCD la palabra ingresada.
mostrar_LCD();
delay(2000);
// Mensaje principal.
msm_principal();
}
}