Añada un display a un ESP32



I2C (Inter-Integrated Circuit) es un modo de comunicación en serie de dos hilos, que puede utilizarse para la conexión de microcontroladores y sus periféricos. Los dispositivos que utilizan la comunicación I2C deben estar conectados a la línea de datos serie (SDA), y la línea de reloj serie (SCL) (llamado bus I2C). Cada dispositivo tiene una dirección única y puede utilizarse como transmisor o receptor para comunicarse con los dispositivos conectados al bus.

Como es de suponer usar este tipo de comunicación I2C con un controlador LCD requiere muchos menos hilos para la gestión del mismo, pues tradicionalmente se controlaban según el bus de datos (4 bits o 8bits) con al menos 4 u 8 hilos de datos, uno para registro seleccionado(RS), otro para lectura/escritura (R/W) , el de reloj (enable) y dos hilos para alimentación. Es decir, la configuración de pines de este tipo de displays LCD sin este tipo de controladores I2C compatibles con el standard de Hitachi es/era la siguiente:

  1. Tierra
  2. VCC +3.3 a +5V (típico)
  3. Ajuste de contraste (VO) Esta es una entrada analógica , típicamente conectado a un potenciómetro. El usuario tiene que ser capaz de controlar este voltaje independiente de todos otros ajustes, para optimizar la visibilidad del display que varía con la temperatura y, en algunos casos, con la altura sobre el nivel de mar. Con un ajuste incorrecto el display parecerá para funcionar mal.
  4. Registro Seleccionado (RS). RS=0: Comando, RS=1: Dato
  5. Lectura/Escritura (R/W). R/W=0: Escribe, R/W=1: Lee (En la mayor parte de las aplicaciones que leer del HD44780 no tiene sentido. En ese caso este pin puede ser permanentemente conectado a tierra y no hay necesidad de asignar pines de entrada/salida para gestionarlo.)
  6. Reloj (Enable). Disparado por el borde descendente
  7. Bit 0 (No utilizado en operación de 4 bits)
  8. Bit 1 (No utilizado en operación de 4 bits)
  9. Bit 2 (No utilizado en operación de 4 bits)
  10. Bit 3 (No utilizado en operación de 4 bits)
  11. Bit 4
  12. Bit 5
  13. Bit 6
  14. Bit 7
  15. Backlight Ánodo (+) (Si aplica)
  16. Backlight Cátodo (-) (Si aplica)

En este ejemplo vamos a ver como conectar un display LCD1602 que integra un controlador I2C con un LCD y este con un ESP32 ,! lo cual solo requiere solo 4 hilos !.En este caso,la pantalla LCD1602 puede mostrar 2 líneas de caracteres en 16 columnas siendo capaz de mostrar números, letras, símbolos, código ASCII, etc. Además el precio es muy asequible pues ronda los 6€/unidad en Amazon y obviamente también existen displays de muchas mas líneas y de mas caracteres según las necesidades particulares de cada diseño.

Este módulo LCD I2C/IIC por tanto puede mostrar 2 líneas de caracteres, 16 para cada uno y es compatible con la mayoría de los microcontroladores de corriente. Los principales modelos de Arduino , Raspberry Pi,/ Raspberry Pi Pico, ESP32 o ESP8266 (otros controladores también pueden ser compatibles, pero el fabricante no proporciona tutorial y código).

A continuación se muestra una pantalla LCD1602 monocroma junto con su diagrama de circuito:

Como podemos ver la pantalla LCD1602 I2C integra una interfaz I2C que conecta el módulo de entrada serie y salida paralela a la pantalla LCD1602.

Esto nos permite utilizar sólo 4 líneas para operar el LCD1602: GND, VCC ( 5v DC),SDA y SCL.

El chip IC serie-paralelo utilizado en este módulo es PCF8574T (PCF8574AT), y su dirección I2C por defecto es 0x27(0x3F), de modo que si tiene problemas para ponerlo en funcionamiento con el código que veremos , ¡cambie 0x27 a 0x3F !-

El pin del módulo PCF8574 y el pin del LCD1602 se corresponden y conectan entre sí:


Así que sólo necesitamos 4 pines para controlar los 16 pines de la pantalla LCD1602 a través de la interfaz I2C.
En este ejemplo , vamos a utilizar el I2C LCD1602 para mostrar algunos caracteres estáticos y los dinámicas. Las conexiones por tanto del display con un ESP32 no pueden ser mas simples como podemos ver a continuación;

Es muy importante saber que la dirección I2C de este LCD varía entre los diferentes chips incorporados( Chip 8574AT: 0x3F y 8574T o chip en blanco: 0x27 )

En la imagen podemos ver una imagen , mas claramente como es este tipo de display y como ha evolucionado de un modelo antiguo donde claramente se aprecia el interfaz i2c una placa aparte y las versiones actuales donde ya va integrado dentro del diseño de la propia placa del LCD.

Podemos usar simplemente cuatro cablecillos hembra -hembra para probar el conjunto:

No es demasiado engorroso todo lo demás porque solo necesitaremos conectar un cable microusb para alimentar el conjunto:

Obviamente para poder escribir caracteres en la pantalla tendremos que cargar el fw adecuado y que vamos a ver a continuación ( sino cargamos nada simplemente aparecerá en la primera lineá los 16 caracteres oscuros)

Código de ejemplo

Antes de escribir código, necesitamos importar la librería necesaria, para lo cual utilizamos la librería de terceros LiquidCrystal I2C. Si aún no la ha instalado, por favor necesitara hacerlo para compilar el siguiente código de mas abajo.
Los pasos para añadir librerías de terceros son los siguientes:

  • Abra arduino ide
  • Vaya aSketch->Include library-> Manage Librerías.
  • Introduzca » LiquidCrystal I2C» en la barra de búsqueda
  • Seleccione » LiquidCrystal I2C » para su instalación

A continuación mostramos un ejemplo de como pintar cualquier carácter en la primera o segunda línea.


#include <LiquidCrystal_I2C.h>
#include <Wire.h>
/*
 * #define SDA 13 //Define SDA pins
#define SCL 14 //Define SCL pins
*/
#define SDA 13  /* 2// 4// 13 //Define SDA pins */
#define SCL 14  /*1//5//14 //Define SCL pins
/*
* note: If lcd1602 uses PCF8574T, IIC's address is 0x27,
* or lcd1602 uses PCF8574AT, IIC's address is 0x3F.
*/
//LiquidCrystal_I2C lcd(0x27,16,2); 
LiquidCrystal_I2C lcd(0x3F,16,2);

bool ledState = false; // Inicializar el estado del LED como apagado

void setup() {
   Serial.begin(115200); // Iniciar la comunicación serial
  pinMode(LED_BUILTIN, OUTPUT); // Configurar el pin del LED interno como salida

 Wire.begin(SDA, SCL); // attach the IIC pin
 lcd.init(); // LCD driver initialization
 lcd.backlight(); // Turn on the backlight
 lcd.setCursor(0,0); // Move the cursor to row 0, column 0
 lcd.print("hello, world! "); // The print content is displayed on the LCD
}

void loop() {
 lcd.setCursor(0,1); // Move the cursor to row 1, column 0
 lcd.print("Counter:"); // The count is displayed every second
 lcd.print(millis() / 1000);
 delay(1000);
 ledState = !ledState; // Cambiar el estado del LED
 digitalWrite(LED_BUILTIN, ledState); // Encender o apagar el LED según el estado actual

 Serial.print("LED state: "); // Imprimir el estado del LED en la consola
 Serial.println(ledState);


}

Este es un código de boceto Arduino que inicializa y controla una pantalla LCD con interfaz I2C y parpadea un LED al mismo tiempo.

La primera parte del código incluye las librerías necesarias para la comunicación I2C y el control de la pantalla LCD. Las líneas de comentario muestran diferentes opciones para los pines SDA y SCL que se pueden utilizar dependiendo de la placa que se utilice.

Las siguientes líneas establecen la dirección I2C del LCD y el número de filas y columnas de la pantalla. Luego, la librería Wire es inicializada para la comunicación I2C y el controlador LCD es inicializado. Finalmente, se enciende la luz de fondo y se imprime el mensaje «¡Hola, mundo!» en la primera fila de la LCD.

La función de bucle se ejecuta continuamente y actualiza la segunda fila de la LCD con el valor actual de la función millis() dividido por 1000, que se incrementa cada segundo. Al mismo tiempo, alterna el estado del LED usando el pin LED incorporado e imprime el estado actual del LED al Monitor Serial.

En la siguiente imagen podemos ver funcionando el display con el código anterior.

Por cierto, si planea usar un display de este tipo ha de saber que los caracteres se sobrescriben en la línea correspondiente ,por lo que es responsabilidad del usuario borrar la pantalla cuando corresponda ( por ejemplo escribiendo 16 caracteres en blanco en la línea que nos interese)

!Socorro mi vitro y horno no funcionan!


Para solucionar un problema con el horno, puede ser mejor llamar a un profesional para que lo repare. La reparación de un horno puede ser peligrosa si no tiene experiencia o conocimientos técnicos en electricidad, por lo que siempre es mejor tomar precauciones y evitar riesgos innecesarios.

Photo by Frank Cone on Pexels.com

A veces, cuando mas lo necesitamos, de repente, no podemos cocinar porque el horno o la vitrocerámica se niegan a hacerlo.

Antes de nada hay un paso principal que no debemos olvidar: que llegue la corriente a la entrada de la vitro , del horno o del «combi» ( es decir del horno con vitrocerámica). Para ello, primero deberíamos comprobar que el enchufe donde esta enchufado tiene AC bien con un polímetro, o si no contamos con este con una lamparita o lo que tengamos a mano.

Ojo con hacer suposiciones sin contrastar, porque que pueda encenderse algun testigo del combi no significa que le llegue AC , pero si obviamente, si se puede encender alguna placa, o algun motor, si que significa que le llega AC al conjunto. Ciertamente pueden despistar los testigos que puedan encenderse, porque estos suelen componerse de pequeñas ampollas de neón que solo necesitan unos de los hilos , por lo que si lucen eso no significa que haya ac (sólo indica que llega al menos la fase pero no que llegue el neutro que lo necesitamos para que funcione ) .

Si nos centramos en solo los hornos eléctricos, una vez descartado la entrada de ac, algunas de las averías más comunes que pueden ocurrir en los hornos eléctricos pueden ser las siguientes :

  • Problemas con la resistencia: La resistencia es la parte del horno que se encarga de calentar el interior del mismo. Si la resistencia se quema o se rompe, el horno no podrá calentar adecuadamente.
  • Problemas con el termostato: El termostato es el dispositivo que controla la temperatura del horno. Si el termostato falla, el horno puede calentarse demasiado o no lo suficiente.
  • Problemas con el temporizador: El temporizador es la parte del horno que se encarga de controlar el tiempo de cocción. Si el temporizador no funciona correctamente, el horno puede cocinar los alimentos por más tiempo del necesario, lo que puede resultar en alimentos quemados o carbonizados.
  • Problemas con el ventilador: Si el ventilador del horno no funciona correctamente, el aire caliente no se distribuirá adecuadamente dentro del horno, lo que puede causar una cocción desigual o lenta.
  • Problemas con la puerta: Si la puerta del horno no cierra correctamente, el calor puede escapar del horno, lo que puede reducir la eficiencia energética del horno y prolongar el tiempo de cocción. También puede haber fugas de calor que pueden ser peligrosas para las personas que están cerca del horno.

Y si ya nos vamos a los combis (vitrocerámicas encastradas con un horno eléctrico) o solo vitrocerámicas con mandos manuales en un lateral, estos son los principales problemas que pueden tener :

  • Problemas con los elementos calefactores: Los elementos calefactores de la vitrocerámica pueden quemarse o dañarse con el tiempo, lo que puede hacer que la placa no caliente adecuadamente o no se caliente en absoluto.
  • Problemas con los interruptores de control: Los interruptores de control en la vitrocerámica pueden fallar con el tiempo, lo que puede hacer que la placa no se encienda o no se apague cuando se debe.
  • Problemas con el sensor de temperatura: El sensor de temperatura en la vitrocerámica puede fallar, lo que puede hacer que la placa no detecte correctamente la temperatura y se caliente demasiado o no lo suficiente.
  • Problemas con el panel de control: El panel de control en la vitrocerámica puede fallar, lo que puede hacer que sea difícil de usar y ajustar la temperatura.
  • Problemas con la conexión eléctrica: Si hay un problema en la conexión eléctrica del horno o de la vitrocerámica, puede haber cortocircuitos, chispas o incluso incendios. Este es realmente el principal problema y de los más comunes, porque los normal es que falle parcialmente algun elemento (sobre todo si es un combi) y no todo.
  • En caso de que falle todo ( es decir que no funcione ni la vitro no el horno en caso del combi ) puede que no sea demasiado complejo solucionarlo. Veamos con mas detalle que podemos hacer:
    • Comprobaremos en primer lugar el enchufe donde esta conectado. Para ello, primero deberíamos comprobar que el enchufe donde esta conectado el horno o vitro tiene tensión, bien con un polímetro, con un buscapolos, o lo que tengamos a mano (en definitiva asegurarnos que tenemos ac en nuestra vivienda antes de desmontar nada).
    • Si la toma de ac tiene tensión, entonces deberíamos comprobar el estado del enchufe del horno , e incluso si tenemos duda desmontarlo y comprobar que la fase, neutro y tierra estan todos bien conectados.
    • Si hay signos de sobrecalentamiento del cable no seria un disparate reemplazar todo el cable por otro nuevo
    • Bueno si tenemos tensión entonces puede ser el cable del conjunto o la regleta del conjunto, lo cual nos va a dar trabajo comprobarlo, pero no es nada que no podamos superar.
    • Primero sacaremos el horno del encastre ( suele llevar 4 tornillos que se ven al abrir la puerta del horno) y estos van fijados al mueble. Bien sacaremos con cuidado a media distancia porque enseguida veremos unos cables que salen de la vitro hacia el cuerpo del horno. Desmontaremos con cuidado la tapa de esos cables y veremos una regleta como la que se ve en la imagen:

Ahora quitaremos ahora la tapa de la regleta ( solo lleva dos tornillos). Observar por cierto que esta tapa lleva rectángulos de 4 colores que nos sirven de guia para cuando desconectemos y volamos a conectar sepamos en que lado debemos conectar los hilos de cada placa (observe como lleva también los cables unos adhesivos de colores),

Bien quitaremos los dos tornillos que sujetan la tapa y enseguida ya podemos soltar ( van por presión) los conectores de los cables de las 4 fogones y los dos hilos de los testigos:

Una vez liberados los 5 mazos de cable, también no olvidar la conexión de masa que va atornillada con un cablecillo al chasis

Bueno soltado los cables de la vitro, ahora toca sacar el horno y quitarle la tapa posterior ( suelen ser unos 4 tornillos)

Ahora viene lo importante porque nos iremos a la parte inferior donde estan las conexiones del cable del horno hacia el resto de circuitería.

En este caso vemos señales de que ha pasado algo grave porque se ven restos negros de haber saltado una chispa justo en el hilo de fase ( el azul) que por cierto de la violenta explosión llegó a cortarse y por tanto dejó sin corriente todo el conjunto.

Si ha habido cortocircuito, lo mejor es cortar la sección desgastada del cable(s) de corriente y volver a conectar fuertemente el hilo seccionado por la parte superior como vemos en la imagen ( asegurarse de que queda(n) muy bien apretado(s)).

Bueno esto debería solucionar el problema así que montaremos la tapa , conectaremos los hilos de la vitro con sus tapas correspondientes , volveremos a colocar el horno en su lugar y conectaremos nuevamente el conjunto a la toma de ca ..

Si funciona ya hemos solucionado el problema, si no es así y salta algun térmico podria ser la propia regleta de conexiones que deberíamos comprobar que nos est cruzado algun hilo entre si o mejor si ha sufrido un percance como en el de la foto sustituirla por una nueva.

Resumen

Reparar un horno /vitro puede ser una tarea compleja, pero si es habilidoso y tiene experiencia en trabajos eléctricos, puede intentar hacerlo usted mismo siguiendo estos pasos:

  1. Identifique el problema: Primero, debe identificar cuál es el problema con el horno/vitro. Puede ser la resistencia, el termostato, el temporizador, el ventilador o la puerta, o la regleta de entradas como se mencionó anteriormente.
  2. Consiga las herramientas adecuadas: Antes de empezar a trabajar, asegúrese de tener las herramientas necesarias para la reparación, como un multímetro, destornilladores, alicates, soldador, entre otros.
  3. Desconecte el horno/vitro: Antes de empezar a trabajar en el horno/vitro, asegúrese de que esté completamente desconectado de la corriente eléctrica para evitar accidentes.
  4. Desmonte el panel frontal: Desmonte el panel frontal del horno/vitro para acceder a las resistencias, el termostato y otros componentes.
  5. Pruebe la resistencias: Si cree que el problema puede ser alguna resistencia, utilice el multímetro para verificar si hay continuidad eléctrica en la misma. Si no hay continuidad, entonces la resistencia debe ser reemplazada.
  6. Verifique el termostato: Si el problema es el termostato, verifique su continuidad eléctrica y asegúrese de que está funcionando correctamente. Si no es así, entonces el termostato debe ser reemplazado.
  7. Revise el temporizador: Si el temporizador está fallando, verifique si hay alguna pieza rota o desgastada que necesite ser reemplazada. Si no encuentra nada obvio, es posible que necesite reemplazar todo el temporizador.
  8. Reemplace los componentes defectuoso: Si has identificado qué componente está fallando, debería reemplazarlo por uno nuevo.
  9. Vuelva a ensamblar el horno: Una vez que haya reemplazado el componente defectuoso, vuelva a ensamblar el horno/vitro y verifica que todo esté funcionando correctamente.

Si después de seguir estos pasos aún no puede solucionar el problema con el horno, puede ser mejor llamar a un profesional para que lo repare. La reparación de un horno puede ser peligrosa si no tiene experiencia o conocimientos técnicos en electricidad, por lo que siempre es mejor tomar precauciones y evitar riesgos innecesarios