martes, 17 de diciembre de 2013

Tutorial: conectando una pantalla LCD 1602A a Arduino UNO

Descarga este tutorial en modo offline: Download PDF

En este tutorial, se va a mostrar cómo conectar una pantalla LCD 1602A a una placa Arduino UNO para mostrar texto por pantalla.

Este es uno de los primeros proyectos que he llevado a cabo. Es bien sencillo y necesita poco material y nada caro.

Material usado

1xPantalla LCD 1602A
1xPlaca Arduino UNO
1xCable USB
Cables
1xBreadboard
1xpotenciómetro 50kohmnios
16x pines macho 2.54 mm
1xbobina de estaño
1x soldador


Primero de todo observaremos la serigrafía escrita en los pines de nuestra pantalla, siendo la siguiente:


  • VSS que es el pin de negativo o masa o 0 volts o GND.
  • VDD es la alimentación principal de la pantalla y el chip, lleva 5 voltios (recomendable ponerle en serie una resistencia para evitar daños, con una de 220 ohmnios es suficiente).
  • VO es el contraste de la pantalla, debe conectarse con un potenciometro de unos 10k ohms o una resistencia fija una vez que encontremos el valor deseado de contraste. Tengan en cuenta que si no conectan esto, no verán nada.
  • RS es el selector de registro (el microcontrolador le comunica a la LCD si quiere mostrar caracteres o si lo que quiere es enviar comandos de control, como cambiar posición del cursor o borrar la pantalla, por ejemplo).
  • RW es el pin que comanda la lectura/escritura. En nuestro caso siempre estará en 0 (conectado a GND) para que escriba en todo momento.
  • E es enable, habilita la pantalla para recibir información.
  • D0~D3 no los vamos a utilizar. Como pueden ver la pantalla tiene un bus de datos de 8 bits, de D0 a D7. Nosotros solamente utilizaremos 4 bits, de D4 a D7, que nos servirán para establecer las líneas de comunicación por donde se transfieren los datos.
  • A y K son los pines del led de la luz de fondo de la pantalla. A se conectará a 4 o 5 volts y K a gnd.


Preparación de las conexiones de la pantalla LCD 1602A

La pantalla LCD viene sin conectores por defecto. Hay dos soluciones para este problema: soldar cables o soldar pines macho de 2,54mm. He optado por la segunda opción por la comodidad que representa (menos cable y acoplan perfectamente con la breadboard). 

Procederemos a la soldadura de los mismos, siendo el resultado el siguiente:







Conexión de la pantalla LCD a la breadboard

Circuito

Primero que todo, la pantalla necesitará ser alimentada. Conectaremos dos cables, uno al pin de la placa Arduino UNO +5V y otro al GND para conectarlos a las filas "+" y "-" de la breadboard.
Conexión: Arduino 5V --> fila +
Conexión: Arduino GND --> fila -



Ahora procederemos a la preparación del contraste de la pantalla LCD. Para ello haremos las siguientes conexiones mediante cables:

Conexión: fila GND (fila -) de la breadboard --> pin 1 de la LCD (VSS)
Conexión: fila 5V (fila +) de la breadboard--> pin 2 de la LCD (VDD)
Conexión: fila 5V (fila +) de la breadboard--> pin 15 de la LCD (A)
Conexión: fila GND (fila -) de la breadboard --> pin 16 de la LCD (K)



Para probar la correcta conexión, encenderemos la placa Arduino UNO mediante el cable USB al ordenador y veremos que la pantalla LCD se ilumina.



El siguiente paso es la introducción del potenciómetro, para ajustar el contraste de la pantalla. En mi caso he utilizado un potenciómetro de 50Kohmnios, pero uno de 10k también es válido. Lo conectaremos a la izquierda de la pantalla LCD sobre la breadboard y procederemos al cableado para la conexión de sus tres pines.

Conexión: primer pin del potenciómetro---> GND de la breadboard (fila -)
Conexión: pin de en medio potenciómetro --> pin 3 de la pantalla LCD (VO)
Conexión: tercer pin del potenciómetro---> 5V de la breadboard (fila -)



Cuando la placa Arduino esté alimentada (conexión USB-PC), se verá por pantalla caracteres en forma de cuadrado en la fila de arriba. Prueba a ajustar con el potenciómetro y verificar que todo funciona correctamente.



En el próximo paso, vamos a conectar la pantalla LCD a la placa Arduino UNO para que se pueda mostrar el mensaje de texto que queramos.

Conexión: pin 4 de la LCD (RS)---> pin 7 del arduino (salida digital, PWM)
Conexión: pin 5 de la LCD (RW) --> GND de la breadboard (fila -)



Conexión: pin 6 de la LCD (E)--> pin 8 de la placa Arduino UNO (PWM)
Conexión: pin 11 de la LCD (D4)--> pin 9 de la placa Arduino UNO (PWM)
Conexión: pin 12 de la LCD (D5)--> pin 10 de la placa Arduino UNO (PWM)
Conexión: pin 13 de la LCD (D6)--> pin 11 de la placa Arduino UNO (PWM)
Conexión: pin 14 de la LCD (D7)--> pin 12 de la placa Arduino UNO (PWM)



El código

Ahora hay que escribir el siguiente programa y transmitirlo a la placa Arduino UNO.

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);

void setup() { 
  lcd.begin(16, 2);
  lcd.setCursor(0,1);
  lcd.write("El cajon de Ardu ");
}

void loop() { }

Cuando el código esté cargado y ejecutándose, la pantalla LCD mostrará el texto de esta forma:



Comentarios

Problema: Al transferir el programa y estando las conexiones aparentemente bien, por pantalla sólo mostraba los caracteres cuadrados, sin mostrar el mensaje que yo quería.

Solución: El potenciómetro tenía las conexiones del revés.

Se pueden cambiar los pines digitales que se van a usar de arduino (en nuestro caso hemos utilizado del 7 al 12).
En la orden "lcd.begin()" definimos el tamaño de nuestra pantalla LCD, en nuestro caso 16x2.

En la orden "lcd.setCursor()" escogemos dónde escribimos, siendo (0,0) para escribir en la fila de arriba y (0,1) en la fila de abajo.

En la orden "lcd.witre(" ")", escribimos el texto a mostar en pantalla.


¡Y hasta aquí el tutorial!

Os animamos a subir vuestros vídeos del tutorial funcionando en nuestro Facebook
nombrándonos en Twitter.

P.