Pantalla LCD Gráfica 128×64 con ST7920

Hay muchas y muy diversas pantallas que podemos hacer funcionar directamente con Arduino. En ésta entrada vamos a presentar esta singular pantalla LCD gráfica de 128 x 64 pixeles con el controlador ST7920, ya que hemos visto por Internet cantidad de gente que no es capaz de conectarla correctamente ni hacerla funcionar por la falta de documentación en el significado de sus pines.

Introducción

Como ya hemos adelantado, estamos ante un LCD gráfico, retroiluminado, con contraste variable, con 128 pixeles de largo y 64 pixeles de ancho. Las pantallas quedan muy elegantes en la mayoría de proyectos realizados con Arduino, ya sea para mostrar información, para ayudar al usuario con la navegación por la aplicación o con la configuración, etc.

Encapsulado

La unidad que presentamos en éste post es un módulo etiquetado como HJ12864ZW, con un LCD gráfico 128×64 controlada por un integrado ST7920.

LCD gráfico 128x64 con ST7920
LCD gráfico 128×64 con ST7920


Datos del módulo

Sus principales características son:

  • Dimensiones: 93.0 x 70.0 x 13.5 mm.
  • Área visual: 72.0 x 40.0 mm.
  • Tamaño del píxel: 0.48 x 0.48 mm.
  • Tensión de funcionamiento: 3.3v / 5.0v.
  • Tensión del funcionamiento del controlador del LCD: 3.0v – 5.0v.
  • Temperatura de funcionamiento: -20ºC – 70ºC.

Conexión

El módulo que os presentamos tiene una variedad de pines que nos puede parecer demasiado numerosa. Veamos el significado de cada uno:

Esquema de pines

Pin Significado Descripción
VSS/GND Ground
VDD/VCC Vin
V0 Voltaje del driver del LCD Ajusta el contraste del LCD (<=7.0v).
RS Register Select Tiene distintos propósitos si está trabajando en modo serie o paralelo.
R/W Read / Write Line En modo paralelo indica el tipo de operación (lectura/escritura). En modo serie se utiliza como entrada de datos.
E Read / Write Enable En modo paralelo es la señal de comienzo de actividad (lectura de datos/selección de operación…). En modo serie es la señal de reloj.
DB0-DB3 Data Bus 0 – Data Bus 3 Bits menos significativos en modo paralelo 8 bits.
DB4-DB7 Data Bus 4 – Data Bus 7 Bits más significativos en modo paralelo 8 bits. Bus de datos en modo paralelo 4 bits.
PSB Serial / Parallel control port Selecciona el modo de funcionamiento (Serie / Paralelo).
NC Not Connected
RST Reset
Vout Salida del doblador de voltaje
BLA BackLight (+) Terminal positivo de la retroiluminación (3.3v – 5.0v).
BLK BackLight (-) Terminal negativo de la retroiluminación.

 

Dependiendo del módulo, tendréis o no un tornillo por la parte de atrás, el cual nos sirve para variar el contraste de la pantalla. En caso de no disponer de éste tornillo (en realidad es un potenciómetro), podemos conectar un potenciómetro en el pin V0 y tensión positiva (+) para variarlo manualmente.

Del mismo modo, podemos variar la retroiluminación del LCD colocando otro potenciómetro para variar la tensión en el pin BLA.

Un ejemplo de esquema de conexiones para utilizarlo con la librería que os recomendamos más abajo sería el siguiente:

Pin LCD Pin Arduino Comentarios
VSS/GND Ground
VDD/VCC 5v
V0 Al aire o a 5v Si tenemos variador de contraste en el reverso del LCD no hace falta conectarlo.
RS Pin X digital Tiene distintos propósitos si está trabajando en modo serie o paralelo.
R/W Pin Y digital o GND Si no vamos a programar ningún caracter del LCD conectamos GND, en caso contrario a un pin digital.
E Pin Z digital En modo paralelo es la señal de comienzo de actividad (lectura de datos/selección de operación…). En modo serie es la señal de reloj.
DB0-DB3 Pines A – D digitales
DB4-DB7 Pines E – H digitales
PSB 5v Seleccionando así el modo paralelo.
NC Al aire
RST Al aire
Vout Al aire
BLA 5v
BLK Ground

Librería

Hay varias librerías circulando por la red, pero sin duda, la más completa, con más actualizaciones y mejor documentada es la librería u8glib. No sólo nos va a servir para este módulo, sino que es válida para un montón de pantallas. Podéis encontrar un montón de documentación en su página oficial de Google Code u8glib.

Datasheets

Podéis consultar más datos técnicos del módulo HJ12864ZW en su datasheet haciendo click aquí.

Podéis consultar más datos técnicos del controlador ST7920 en su datasheet haciendo click aquí.


6 Comentarios

  1. Para los que programamos pic hay manera de conectar usar este controlador? para CCS

    • No sé si exactamente éste modelo se podrá hacer funcionar del todo bien, todo es cuestión de cogerse el datasheet e ir haciendo pruebas. Quizá te sea más sencillo comenzar con algún módulo de caracteres fijos, del tipo 20×2.

  2. Hola, estoy usando esta pantalla con baterias y no encuentro la forma de poder quitarle la corriente de una forma comoda para ahorrar bateria.

    Alguna sugerencia?

    Gracias.

    • Hola Enric, puedes poner un potenciómetro en BLA/BLK para ajustar la retroiluminación y que consuma menos y un interruptor en VDD/VCC para apagarla por completo.

      Otra opción es colocar un botón que haga que la pantalla se encienda sólo unos segundos y vuelva a apagarse, así ahorras batería y puedes encenderla para ver la info cuando quieras.

      Un saludo.

  3. Gracias por el tutorial. Me ayudo para poder conectar y hacer funcionar mi pantalla LCD.

  4. Necesito su ayuda.

    Necesito saber como programar mi LCD pixel por pixel, es para un Drone que se esta desarrollando en mi universidad.

    Espero su comprensión, gracias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies