Saltar al contenido
Contenido de Arduino

Lección 1.11: Pantalla LCD

Una pantalla de texto independiza el montaje: ya no hace falta el ordenador ni el monitor serie para saber qué está pasando.

Material

Librerías

  • LiquidCrystal — incluida con el IDE

Cómo funciona

La LCD 1602 tiene un controlador HD44780 que recibe órdenes y caracteres. El pin RS indica cuál de las dos cosas le envías: a LOW, una orden —borrar, mover el cursor—; a HIGH, un carácter.

Los datos pueden ir en 8 bits o en dos mitades de 4. En modo de 4 bits bastan D4–D7, más RS y E: seis pines en total. E (enable) es el pulso que le dice a la pantalla «lee ahora».

RW elige entre escribir y leer; como aquí solo se escribe, va fijo a GND. El potenciómetro en V0 regula el contraste, no el brillo: mal ajustado, la pantalla parece vacía aunque esté funcionando.

Conexiones

ComponenteSe conecta aNota
LCD, VSS (1)GND
LCD, VDD (2)5V
LCD, V0 (3)Potenciómetro, pin centralLos extremos del potenciómetro, a 5V y GND
LCD, RS (4)Pin 12
LCD, RW (5)GND
LCD, E (6)Pin 11
LCD, D4 (11)Pin 5
LCD, D5 (12)Pin 4
LCD, D6 (13)Pin 3
LCD, D7 (14)Pin 2
LCD, A (15)5VA través de una resistencia de 220 Ω si tu módulo no la trae
LCD, K (16)GND

Código

// Saludo en la primera fila y segundos encendida en la segunda.
#include <LiquidCrystal.h>

// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2); // 16 columnas, 2 filas
  lcd.print("Hola, mundo!");
}

void loop() {
  lcd.setCursor(0, 1); // columna 0 de la segunda fila
  lcd.print(millis() / 1000);
  lcd.print(" s");
  delay(200);
}

Qué hace el código

  • El constructor de LiquidCrystal recibe los pines en el orden RS, E, D4, D5, D6, D7.
  • begin(16, 2) le dice el tamaño de la pantalla; sin él, setCursor() no sabe dónde empieza la segunda fila.
  • setCursor(columna, fila) cuenta desde 0: (0, 1) es el principio de la segunda línea.
  • La pantalla no tiene tildes, eñes ni signos de apertura: su juego de caracteres es el del controlador. Escribe sin ellos o crea caracteres propios con createChar().

Paso a paso

  1. Coloca la pantalla y el potenciómetro en la protoboard y lleva 5V y GND a los raíles.
  2. Cablea la alimentación, la retroiluminación y el contraste, y comprueba que al girar el potenciómetro aparecen bloques en la primera fila.
  3. Conecta RS, E y D4–D7, y sube el código.
  4. Ajusta el potenciómetro hasta que el texto se lea bien.

Resultado

La primera fila dice «Hola, mundo!» y la segunda cuenta los segundos desde que arrancó la placa.

Si no funciona

  • Si solo ves bloques en la primera fila, la pantalla tiene corriente pero no recibe datos: revisa RS, E y D4–D7.
  • Si no ves nada, gira el potenciómetro de un extremo al otro: el contraste es la causa más frecuente.
  • Si la retroiluminación no se enciende, revisa A y K; en algunos módulos aparecen como LED+ y LED−.
  • Si salen caracteres extraños, D4–D7 están cruzados.