- Materiales necesarios:
- Módulo de pantalla gráfica Nokia 5110:
- Diagrama de circuito:
- Programa y funcionamiento de Arduino:
El nombre icónico “ Nokia 5110 ” en sí debería haber comprado recuerdos del robusto teléfono móvil Nokia que fue muy popular durante los años 90. El modelo 5110 venía con una pantalla gráfica que era suficiente para actuar como una pantalla para el móvil en ese entonces. Esta pantalla era capaz de mostrar de todo, desde caracteres alfanuméricos hasta pequeños gráficos que es todo lo necesario para el teléfono móvil. A medida que la tierra giraba, aparecieron nuevas tecnologías con pantallas táctiles brillantes y esta pantalla ya no está en uso. Pero es de esperar que se puedan usar en aplicaciones electrónicas donde se deben mostrar pequeños gráficos y evitar gastar dinero en grandes pantallas LCD. Entonces, en este tutorial aprenderemos cómo conectar un LCD gráfico Nokia 5110 con Arduino y hacerlo funcionar.
Estos LCD tienen píxeles en blanco y negro de dimensiones 84 × 48. Pueden parecer monótonos pero aún se pueden usar para mostrar gráficos decentes para sus proyectos y se pueden usar fácilmente con microcontroladores como Arduino. Entonces empecemos….!
Materiales necesarios:
- Placa Arduino (cualquier versión)
- Pantalla Nokia 5110
- Cables de conexión
Módulo de pantalla gráfica Nokia 5110:
Hay dos tipos de estos LCD gráficos disponibles en el mercado. Uno con almohadillas de soldadura tanto arriba como debajo de la pantalla y el otro con almohadillas de soldadura solo en la parte inferior de la pantalla. El que estamos usando pertenece al tipo 2, donde solo hay pads debajo de la pantalla. Ambos módulos funcionan igual y, por lo tanto, las conexiones son las mismas para ambos. Entonces, independientemente del módulo que sea, puede seguir el tutorial.
Como se dijo anteriormente, Nokia 5110 Graphical LCD tiene 84 píxeles en horizontal y 48 píxeles en vertical. El tamaño total de la pantalla es 1,72 'x 1,72'. El módulo tiene 6 pines de entrada con los que podemos conectarlo a cualquier microcontrolador a través de la comunicación SPI. El IC de interfaz que se comunica entre la pantalla y el Arduino es el IC controlador de pantalla PCD8544 de Philips, cuya hoja de datos se puede encontrar aquí. Sin embargo, si está utilizando Arduino para comunicarse con este IC, no debemos preocuparnos por la hoja de datos, ya que hay bibliotecas que están listas para descargarse y utilizarse. El módulo que estamos usando aquí se muestra a continuación.
Diagrama de circuito:
El diagrama de circuito completo para conectar la pantalla LCD gráfica Nokia5110 con Arduino se muestra a continuación.
El módulo de pantalla tiene 8 pines que se utilizan para configurar una comunicación SPI con Arduino. El módulo se alimenta con el pin de 3.3V de la placa Arduino. Tenga en cuenta que estos módulos funcionan con lógica de 3,3 V y, por lo tanto, no suministran 5 V al pin Vcc de las pantallas. He conectado directamente el Pin de la pantalla a Arduino, aunque la pantalla LCD funciona con lógica de 3.3V y Arduino con lógica de 5V porque solo entonces encontré que la pantalla LCD funcionaba correctamente. Puede usar un divisor de voltaje para convertir 5V a 3.3V si es necesario, pero para mí funciona solo sin la conversión lógica. Las conexiones son bastante simples y sencillas de hacer. Una vez que haya terminado con las conexiones, su configuración sería similar a la que se muestra a continuación.
Programa y funcionamiento de Arduino:
Siga los pasos a continuación para programar su Arduino para la pantalla Nokia 5110. Los pasos asumen que ya ha instalado el IDE de Arduino y está familiarizado con su uso.
Paso 1: Abra el IDE de Arduino en su computadora y seleccione la placa apropiada en el menú de herramientas después de conectar su Arduino a su computadora.
Paso 2: Haga clic aquí para descargar la biblioteca de pantalla Nokia 5110 de Adafruit del repositorio de GitHub.
Paso 3: Una vez descargado el archivo Zip, seleccione Sketch -> Incluir biblioteca -> Agregar biblioteca.ZIP y busque la ubicación donde se descargó el ZIP.
Nota: También tendrá que descargar el núcleo de gráficos Adafruit GFX que hace todos los círculos, texto, rectángulos, etc. Puede obtenerlo en https://github.com/adafruit/Adafruit-GFX-Library e instalarlo de la misma manera.
Paso 4: Ahora abra el programa de ejemplo seleccionando Archivo -> Ejemplos -> Biblioteca LCD Adafruit PCD Nokia 5110 -> pcdtest y haga clic en el botón de carga
Paso 5: Una vez que se cargue el programa, presione el botón de reinicio en el Arduino y debería ver el programa de ejemplo que muestra todas las animaciones como se muestra en el video que se encuentra al final de este tutorial.
Puede leer el programa de ejemplo para comprender las distintas funciones integradas que se pueden utilizar para realizar varios diseños gráficos en la pantalla LCD. Pero vayamos un paso más allá e intentemos mostrar el logotipo de CircuitDigest en la pantalla LCD.
Ahora abra la imagen requerida en Paint y cambie el tamaño de la imagen. El tamaño máximo de imagen que podemos usar para nuestra pantalla es 84 × 48.
Después de cambiar el tamaño de la imagen, guarde la imagen como mapa de bits (blanco y negro) usando la opción guardar como en Paint. Para mostrar la imagen como un mapa de bits en nuestra pantalla LCD, necesitaremos un software que pueda convertir la imagen de mapa de bits en código. Puede descargar el software haciendo clic aquí. Una vez descargado, descomprima el archivo y haga clic en “BitmapEncoder” para iniciar la aplicación. Abra la imagen de mapa de bits que acabamos de guardar con este software para obtener la matriz de valores codificados. Puede copiar directamente estos valores y pegarlos en su matriz Arduino. El valor mostrado por el software para nuestro logotipo se muestra a continuación
Como puede ver, la matriz comienza con el valor 48, 48 este es el tamaño de nuestra imagen. No debemos agregar esto en nuestra matriz. Por lo tanto, elimine los dos primeros valores y use el resto como valor de matriz en el programa. La matriz se verá a continuación. El programa completo se encuentra al final de esta página para su referencia.
static const unsigned char PROGMEM Logo = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111111, B00000000, B00000000, B110000, B1100001 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111, B111100, B000000, B111100, B11110000, B000000 B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B00000111, B11110001, B11111111, B11000, B111111, B11100, B111111, B11000, B111111 B01100000, B00000000, B00000011, B11100000, B00001001, B11111100, B00000000, B00000000, B00000111,B11100000, B00011001, B11111110, B00000000, B00000000, B00000111, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11111111, B11111000, B001111, B11, B1111, B11, B11, B11, B1111, B11, B11, B11, B11, B11, B11 B11111111, B11111111, B11111100, B00111111, B11111111, B00011111, B11111111, B11111111, B11111100, B00111111, B11111110, B00111111, B00111111, B11111111, B11111110, B01111111, B11111110, B00111110, B00000000, B01111111, B11111100, B01111111, B11111100, B01111100, B11000000, B00000000, B00000000, B01111111, B11111100, B01111110, B10000000, B00000000, B00000000, B00000000, B00000000, B11111110, B00111111, B11111111, B11111110, B00000000, B00000001, B11111111, B1111101111, B111111, B111111, B111111, B111111, B111111, B111111, B111111 B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B00000000, B00000000, B001100, B1100, B110000, B110000, B110000, B110011, B110000, B110000 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B00000001, B11111111, B00000001, B11111111, B00000001, B11111111, B11111111, B00000001, B11111111 B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B00110111, B110011, B110000, B00000000, B110011, B1100111 B10000000, B00000000, B11111111, B11001111, B10000000, B11111111, B00000000, B00000000, B01111111,B11111111, B10110001, B11111110, B00000000, B00000000, B00011111, B11111111, B10110111, B11111100, B00000000, B00000000, B00001111, B11111111, B10000111, B11110000, B00000000, B00000000, B00001111, B1100000000, B000011, B110000, B110000, B110000, B110000 B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
Ahora, para mostrar este mapa de bits, tenemos que usar las siguientes líneas de código. Donde se borran los datos anteriores en la pantalla y se escribe la nueva imagen de mapa de bits.
display.clearDisplay (); display.drawBitmap (20, 0, Logo, 48, 48, 1); display.display ();
La línea display.drawBitmap (20, 0, Logo, 48, 48, 1); mostrar la posición, el tamaño y el color de la imagen de mapa de bits. La sintaxis se puede dar como.
display.drawBitmap (X_Position, Y_Position, Nombre de la matriz, longitud de la imagen, amplitud de la imagen);
La longitud y el ancho de la imagen se pueden obtener de los dos primeros elementos de la matriz, respectivamente, como se dijo anteriormente. Cuando se ejecuta este código, el mapa de bits se muestra en nuestra pantalla LCD como se muestra a continuación.
También puede mostrar texto simple como se muestra a continuación:
Espero que haya entendido el tutorial y haya conectado su pantalla LCD Nokia 5110 con Arduino. Con esta pantalla gráfica en la manga, puede crear muchos proyectos que requieran pequeños detalles gráficos. El trabajo completo se puede encontrar en el video que se muestra a continuación. Si tiene algún problema para que esto funcione, puede usar el foro para publicar su problema o las secciones de comentarios a continuación.