En esta segunda entrada sobre la utilización de un display basado en el chip HD44780 mostraré el esquema de conexión y  las funciones de las que dispone la librería LiquidCrystal para controlar el display.

Esquema

Esquema de conexion

En el esquema hecho en fritzing de la imagen anterior podemos ver como se conecta todo el conjunto, pero antes conviene que sepamos par de cosas antes de ponernos a montarlo.

  • El latch pin (pin 12 del 74HC595) puede ir conectado en cualquier pin del arduino siempre que tenga pwm (es decir pines 3, 5, 6, 9 y 10 del arduino). El pin 13 y 11 quedan reservados, si queremos cambiar esos pines tendremos que modificar la librería y creo que es más sencillo conectar en otro pin que tengamos libre 😉
  • El potenciómetro también debe instalarse siempre, este potenciómetro controla el contraste del display. Como alternativa se puede poner un divisor de tensión con dos resistencias.
  • Si queremos controlar la retroiluminación (luz de fondo de la pantalla) mediante el arduino tenemos que conectar el cátado (pin 16 marcado como K) a negativo y el ánodo (pin 15 marcado como A) a un pin digital del arduino. Personalmente yo conectaría el ánodo al emisor de un transistor NPN, la base al pin digital del arduino y el colector a positivo.
  • En el esquema falta una conexión y es la del pin 5 de la pantalla que corresponde a la entrada R/W. Este pin debe conectarse a negativo.

Una vez considerados los puntos anteriores podemos proceder a conectar todo prestando atención a cada conexión que realizamos. En la siguiente tabla pongo un resumen de las conexiones de cada elemento (pincha sobre la imagen para verlas en grande).

Tablas rapidas conexion

La librería Liquid Crystal

Las funciones de esta librería nos va a permitir controlar el display LCD. Cabe destacar que para este montaje se utiliza la librería LyquidCrystal.h modificada para trabajar con SPI, esta librería se puede bajar de aquí. Después de descargar la librería debemos descomprimir el archivo y mover la carpeta LiquidCrystal dentro de la carpeta libraries del directorio principal del arduino.

Estas son las funciones que incluye LiquidCrystal.h

  • LiquidCrystal lcd(x) -> Crea una variable llamada lcd indicando el latch pin del 74HC595
  • autoscroll() -> Desplaza el texto al escribir
  • noAutoscroll() -> Sobreescribe el texo al escribir
  • begin(x,y) -> Establece el número de columnas y filas
  • blink() -> Muestra el cursor parpadeante
  • noBlink() -> Oculta el cursor parpadeante
  • clear() -> Borra lo escrito en el display
  • createChar() -> Crea un caracter personalizado
  • cursor() -> Muestra el cursor
  • noCursor() -> Oculta el cursor
  • display() -> Enciende el display
  • noDisplay() -> Apaga el display
  • home() -> Situa el cursor en 0,0
  • leftToRight() -> Establece la dirección del texto de izquierda a derecha
  • print() -> Muestra texto, variables, etc en el display
  • rightToLeft() -> Establece la dirección del texto de derecha a izquierda
  • scrollDisplayLeft() -> Desplaza el display un punto a la derecha
  • scrollDisplayRight() -> Desplaza el display un punto a la derecha
  • setCursor(x,y) -> Situa el cursor en la posición x,y
  • write() -> Muestra un caracter en el display

Para ver con más detalle cada sentencia se puede mirar en la página de referencia de la librería LiquidCristal en la web de arduino.

En la siguiente y última entrada veremos algunos ejemplos de códigos y lo que hacen en el display. Por lo pronto podéis cargar el ejemplo que viene en el IDE de arduino llamado "HelloWorld_SPI", este ejemplo muestra el mensaje Hello World! en la primera fila del display y un contador de segundos que va aumentando en la segunda fila.