Como conectar pantalla Nokia 5110 Arduino

La pantalla Nokia 5510 Arduino es una display LCD gráfica que se diseñó originalmente para las pantallas de los icónicos teléfonos móviles Nokia 5510. Pero ahora la pantalla gráfico Nokia 5110 se puede utilizar fácilmente en proyectos con microcontroladores Arduino. Veamos cómo conectar la pantalla Nokia 5110 a la placa Arduino, cómo mostrar texto y números, así como mostrar una imagen de mapa de bits monocromática en la pantalla.

Para esta actividad necesitaremos:

Display LCD Nokia 5110 Arduino datasheet, pinout

Todas las funciones de visualización necesarias están empaquetadas en un pequeño controlador Philips PCD8544 que funciona a muy baja tensión. El chip PCD8544 es más económico, preciso y fiable que el controlador de la pantalla LCD 1602. El módulo Nokia 5510 tiene 8 conectores (véase la imagen de abajo) para la conexión, el voltaje de funcionamiento de la pantalla y la retroiluminación de la pantalla está en el rango de 3,3 – 5 voltios.

Arduino display Nokia 5110 pinout, datasheet
Arduino LCD display Nokia 5110 pinout, datasheet

Características pantalla Nokia 5110 Arduino:

  • Tensión de funcionamiento: 3,3 – 5 V
  • Chip: PCD8544
  • Interfaz: SPI
  • Tamaño de pantalla: 84 x 48
  • Tipo: TFT
  • Color: monocromo
  • Frecuencia de reloj: hasta 4 MHz
  • Tiempo de reinicio: 100 ns

La pantalla del Nokia 5110 84×48 está conectada al microcontrolador Arduino utilizando el protocolo estándar SPI, pero sólo se utiliza la comunicación unidireccional, ya que la pantalla PCD8544 no necesita enviar ningún dato al microcontrolador. El programa utilizará una implementación de software del protocolo SPI, por lo que es posible utilizar cualquier pin GPIO de Arduino para interconectar la placa con la pantalla gráfico Nokia 5110.

Conectar pantalla LCD Nokia 5110 a Arduino

Conexión display gráfico Nokia 5110 Arduino
Conexión display gráfico Nokia 5110 a Arduino Uno
LCD Nokia 5110 Arduino Uno Arduino Nano Arduino Mega
RST 7 7 7
CE 6 6 6
DC 5 5 5
Din 4 4 4
Clk 3 3 3
VCC 5V 5V 5V
BL 5V 5V 5V
GND GND GND GND
  • el contacto RST se utiliza para reiniciar
  • el contacto LIGHT se utiliza para la retroiluminación
  • los pines VCC y GND se utilizan para la alimentación del módulo
  • los contactos CE, DIN y CLK se utilizan para controlar la pantalla
  • DC se utiliza para indicar si la siguiente información a transmitir será un comando o datos

Programa Arduino para pantalla Nokia 5110 84 x 48

#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_PCD8544.h"

// pines de conexión del módulo
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7);

void setup() {
  display.begin();
  display.setContrast(20); // contraste de pantalla de 0 a 100 
  display.setTextSize(1); // tamaño del texto (1 - valor mínimo)
  display.clearDisplay(); // limpieza de la pantalla
}

void loop() {
  display.setTextColor(BLACK); // color del texto 
  display.setCursor(5, 0); // posición del texto en los ejes X e Y
  display.println("Hello, World!"); 
  display.display(); // función de edición de texto 
  delay(1000); 
  display.clearDisplay(); 

  display.setTextColor(WHITE, BLACK); // inversión de color 
  display.setCursor(6, 20); 
  display.println(" Nokia 5110 "); 
  display.display();
  delay(1000); 
  display.clearDisplay();
}

Explicación del código para control del Nokia 5110 Arduino:

  1. la función display.setCursor(10, 10); tiene dos argumentos: el primer argumento es la coordenada X (incrementada hacia la derecha), el segundo argumento es la coordenada Y (incrementada hacia abajo);
  2. en la función display.setTextColor(WHITE, BLACK); el primer argumento es responsable del color del texto, y el segundo argumento del color de la pantalla.

Cómo mostrar una imagen en el Nokia 5110

einshtein

Para mostrar una imagen en la pantalla del Nokia 5110 LCD, es necesario crearla en formato BMP con una resolución de 84 x 48. Puede descargar la imagen de Internet o tomarla de nuestro ejemplo en el que utilizamos la imagen de Einstein (la imagen está colocada arriba). En la primera etapa es necesario subir la imagen lista al siguiente web sitio:

http://javl.github.io/image2cpp/

javl.github.io/image2cpp

En la segunda fase puedes especificar varios ajustes (invertir la imagen, estirarla o voltearla, etc.). En el sitio web hay disponible una vista previa de cómo se mostrará la imagen cargada en la pantalla LCD monocroma del Nokia 5110 (véase la captura de pantalla siguiente).

captura de pantalla

En el último paso, haz clic en el botón «Generar código» y copia el array en la ventana inferior. Sólo el array debe ser copiado, no necesitamos el resto de las líneas de código. A continuación, pega este código en el boceto. Presta atención al nombre del array (se crea automáticamente a partir del nombre del archivo) y también a la resolución de la imagen.

Programa Arduino para mostrar una imagen en Nokia 5110

#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_PCD8544.h"

// pines de conexión del módulo
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7);

// 'einshtein', 84x48px
const unsigned char epd_bitmap_einshtein [] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 
  0x46, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x80, 0xc0, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x01, 0x7e, 0x10, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5c, 0x28, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x06, 0x00, 0x41, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0xca, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfc, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x04, 0x00, 0x0e, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x1a, 
  0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x04, 0x01, 0x40, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0xcd, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xab, 0x00, 
  0x68, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xa8, 0x00, 0x04, 0x01, 0xc0, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x01, 0x29, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6a, 
  0x00, 0x70, 0x14, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6b, 0xa0, 0xe0, 0x0a, 0xe0, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x01, 0x71, 0xe0, 0x70, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 
  0x52, 0x20, 0x60, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x54, 0x20, 0x80, 0x06, 0x58, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x40, 0x30, 0x0b, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0xb0, 0x40, 0x00, 0x0a, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x44, 0x00, 0x22, 
  0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x10, 0xc5, 0x00, 0x38, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x60, 0x40, 
  0x20, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 
  0x41, 0x11, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xfb, 0x01, 0x20, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x0c, 0x89, 0x81, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 
  0x81, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x81, 0x00, 0x80, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x01, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x10, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0xa8, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

void setup() {
  display.begin();
  display.setContrast(20);
  display.clearDisplay();

  // display image
  display.drawBitmap(0, 0, epd_bitmap_einshtein, 84, 48, BLACK);
  display.display();
}

void loop() {

}

Explicación del código para mostrar una imagen en LCD Nokia 5110:

  1. cuando muestre una imagen en la pantalla del Nokia PCD8544, tenga en cuenta el nombre de la matriz y la resolución de la imagen.

Conclusión. Cuando la salida de variables o información de los sensores a la pantalla LCD Nokia en el display.println(x); comando, no ponga las comillas. Es decir, las reglas son las mismas que cuando se trabaja con el monitor de puerto Arduino IDE. Si sigues todos los pasos que se describen en detalle en esta revisión, verás la misma imagen en la pantalla.


Deja una respuesta

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