Integrando una pantalla LCD 16×2 a la alarma

ArduinoOpenAlarm posee una arquitectura flaxible que permite una fácil integración de componentes externos. Entre los más útiles se encuentran las pantallas y los teclados, ya que nos brindan los medios para interactuar con la alarma. Este instructivo explica como integrar una patnalla LCD alfanumérica 16×2 (o similar ya que el mismo puede usarse para otras pantallas alfanuméricas) en su versión normal o I2C.

Tipos de pantallas y conexiones con nuestro Arduino

La diferencia entre los 2 tipos de pantallas que presentamos a continuación, además del costo, es la cantidad de pines que requieren de su Arduino para poder controlarlas. La versión I2C es un poco más costosa pero solo utilizará 2 pines de su Arduino, mientras que para controlar la versión que se conecta en paralelo necesitará un mínimo de 6 pines de su Arduino además de 2 componentes extra, por lo que la versión I2C es muy conveniente si no desea complicarse la vida o si sus conocimientos de electrónica son demasiado básicos.

La pantalla I2C

La pantalla I2C es la que menos conexiones requiere. Necesitaremos 4 cables y 2 pines de nuestro Arduino ya que la pantalla se conecta a los pines SDA y SCL de nuestra placa, además de 5V y GND.

LCD 16x2 I2C vista de frente (no cambia con su version regular) LCD 16x2 I2C vista desde atrás

y conectaremos nuestra pantalla a un Arduino UNO de la siguiente manera:

 

LCD 16x2 I2C conectado a un Arduino UNO

 

La pantalla de conexión paralela

Si la pantalla fuera de conexión paralela (no I2C) la pantalla de frente se vería igual pero por detrás sería diferente, con 16 pines de conexión como la siguiente:

 

 

Y en ese caso conectaremos la pantalla de la siguiente manera a nuestro Arduino UNO:

Pantalla 16x2 conexión paralela conectada a un Arduino UNO

La conexión superior puede parecer compleja, pero no lo es. Para mayor referencia puede consultar un diagrama esquemático en la página de Arduino.

Cambios al código de ArduinoOpenAlarm

Siga las instrucciones en el instructivo base sobre como instalar ArduinoOpenAlarm. Luego deberá hacer los siguientes cambios dependiendo del tipo de pantalla que haya integrado.

Para integrar la pantalla LCD siga los siguientes pasos:

1) Agregue las siguientes lineas al inicio del archivo ArduinoOpenAlarm.ino:

Para la versión I2C

#include 
#include "LiquidCrystal_I2C.h"

Para la version de conexión paralela

#include <Wire.h>
#include "LiquidCrystal.h"

2) Copie los siguientes archivos al directorio raiz del proyecto:

/output/LCDOutputProcessor.h
/output/LCDOutputProcessor.cpp

3) Reemplaze las siguientes lineas en el archivo ArduinoOpenAlarm.ino:

#include "USBOutputProcessor.h"
USBOutputProcessor outP;

por las siguientes:

#include "LCDOutputProcessor.h"
LCDOutputProcessor outP;

4) Cambie las siguientes lineas segun el tipo de display que esté integrando:

Para la versión I2C

Ajuste la dirección de su display si fuera necesario en la linea que dice:

#define LCD_I2C_ADDRESS 0x27 // Algunos displays usan 0x3F

Ajuste el número de columnas y filas para que se ajuste a su pantalla:

#define LCD_ROWS 16
#define LCD_COLS 2

Para la version de conexión paralela

Comente la linea que refiere a pantallas I2C:

//#define I2C_DISPLAY

Edite las lineas que refieren a los pines usados para controlar la pantalla (si usó la conexión sugerida arriba deberían verse como los siguientes):

#define LCD_RS A0
#define LCD_EN A1
#define LCD_D4 A2
#define LCD_D5 A3
#define LCD_D6 A4
#define LCD_D7 A5

Eso debería ser todo. Compile, suba su código y pruebe su alarma como de costumbre. La librería ArduinoOpenAlarm para pantallas LCD es USB compatible, lo que significa que debería ver los mensajes por el Monitor Serie tambien. Si desea desactivar esta funcionalidad, deberá editar el archivo LCDOutputProcessor.cpp y comentar la línea que dice:

//Serial.println(text);

 

Deja un comentario