Conheça o Display Nokia 5110

Conheça o Display Nokia 5110 6

Neste post veremos utilizar o Display Nokia 5110. Esse display é extremamente simples de programar e versátil, além de possuir um custo bastante acessível.

Nokia 5110 Logo FilipeFlop

Materiais Necessários

Os materiais necessários para esse tutorial são:

Montagem do Circuito

Esquema de ligação do projeto com Arduino Nano e Display Nokia 5110

As seguintes conexões devem ser feitas entre o Arduino e os pinos do Display Nokia 5110:

Arduino Display
D12  RST
D11 CE
D10 DC
D9 Din
D8 Clk
5V Vcc
D2 BL
GND Gnd

É importante verificar a tensão de trabalho do seu Display Nokia 5110. Geralmente, os displays com PCB de cor Azul aceitam tanto 3,3V quanto 5V enquanto os de PCB Vermelha trabalham apenas com 3,3V e, portanto, não são apropriados para utilização com o Arduino.

Bibliotecas e Funções

Para esse tutorial serão necessárias as seguintes bibliotecas, que podem ser instaladas através do gerenciador de bibliotecas da IDE do Arduino ou dos links abaixo:

As principais funções utilizadas para interagir com o Display Nokia 5110, suas atribuições e parâmetros são:

Função  Atribuição Parâmetros
begin Inicializa o display
setContrast Define o contraste contraste (valor de 0 a 100)
clearDisplay Limpa a tela
drawBitmap Exibe uma imagem na tela posição x, posição y, array com a imagem, largura, altura
display Exibe as informações na tela
setTextSize Define a fonte Tamanho da fonte
setTextColor Define a cor do texto BLACK – texto preto

ou

WHITE, BLACK – fundo preto texto branco

setCursor Posiciona o cursor posição x, posição y
print Imprime um texto na tela texto

É importante lembrar que sempre que desejar que as informações que aparecem na tela sejam atualizadas para as definidas no código é necessário chamar a função display().

Bitmap

Para exibição de imagens, utilizaremos o programa Image2Code para transformar a imagem em um vetor com os códigos hexadecimais que descrevem a imagem. Para isso é necessário que a imagem seja um bitmap preto e branco, com tamanho máximo de 84X84. O programa pode ser baixado nesse link e a imagem pode ser editada com o Paint para atender as especificações de formato e tamanho.

Primeiro abrimos o programa e clicamos em Browse para selecionar o arquivo da imagem.

Escolher o arquivo de imagem no Image2Code

Depois selecionamos a terceira opção da esquerda para direita – que diz MSB LSB. Então clicamos em Convert e esperamos que o arquivo com o vetor seja aberto no Bloco de Notas.

Padrão MSB-LSB

Depois, utilizamos a ferramenta de substituição para retirar as chaves { }.

Substituição das chaves no arquivo bitmap

PROGMEM const unsigned char img[] = {texto_do_bloco_de_notas};

Código 

O código abaixo é uma breve demonstração das capacidades do Display e das funções usadas para operá-lo.

/*
#-------------------------#
|         DISPLAY         |
|          NOKIA          |
|      Ítalo  Coelho      |
#-------------------------#
*/

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

#define BLpin 2   //Pino que controla a luz de fundo

// CLK, DIN, DC, CE, RST
Adafruit_PCD8544 display = Adafruit_PCD8544(8,9,10,11,12);

PROGMEM const unsigned char img[] = 
{
 0x00,0x03,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,
 0x00,0x0F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,
 0x00,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,
 0x00,0x1F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,
 0x00,0x1E,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,
 0x00,0x1E,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,
 0x00,0x1E,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,
 0x00,0x1E,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,
 0x00,0x1E,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,
 0x00,0x1E,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,
 0x1F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00 ,
 0x3F,0xFF,0xFF,0x3E,0xCE,0x19,0xE7,0xC7,0xF0,0xF3,0xE0 ,
 0x3F,0xFF,0xFF,0x3E,0xCE,0x19,0xEF,0xC7,0xF0,0xF3,0xE0 ,
 0x7F,0xFF,0xFF,0x30,0xCE,0x19,0xEE,0x04,0x30,0xF3,0x60 ,
 0x78,0x1E,0x00,0x30,0xCE,0x19,0xEC,0x04,0x30,0xF3,0x20 ,
 0x70,0x1E,0x00,0x30,0xCE,0x19,0xEC,0x04,0x30,0xF3,0x20 ,
 0x70,0x1E,0x00,0x30,0xCE,0x19,0xEC,0x04,0x30,0xF3,0x60 ,
 0x70,0x1E,0x00,0x3C,0xCE,0x19,0xEF,0x87,0x30,0xF3,0xE0 ,
 0x70,0x1E,0x00,0x3C,0xCE,0x19,0xCF,0x87,0x30,0xF3,0xE0 ,
 0x70,0x1E,0x00,0x30,0xCE,0x19,0x8C,0x04,0x30,0xF3,0x00 ,
 0x70,0x1E,0x00,0x30,0xCE,0x19,0x8C,0x04,0x30,0xF3,0x00 ,
 0x70,0x3E,0x00,0x30,0xCE,0x19,0x8C,0x04,0x30,0xF3,0x00 ,
 0x7F,0xFE,0x00,0x30,0xCE,0x19,0x8C,0x04,0x30,0xF3,0x00 ,
 0x7F,0xFE,0x00,0x30,0xCF,0x99,0x8F,0xC4,0x3E,0xF3,0x00 ,
 0x7F,0xF0,0x00,0x30,0xC3,0x99,0x83,0xC4,0x0E,0x63,0x00 
 };
 
void setup() 
{
  pinMode(BLpin, OUTPUT);
  digitalWrite(BLpin, HIGH);
  
  display.begin();          //Inicializa o Display
  
  display.setContrast(56);  //Define o contraste
}

void loop() 
{
  display.clearDisplay();                 //Limpa a tela

  display.drawBitmap( 0, 0, img, 84, 25, BLACK);    //Exibe imagem Bitmap
  
  display.display();                      //Exibe no display
  
  delay(5000);
  
  display.clearDisplay();

  display.setTextSize(1);                 //Tamanho da fonte
  display.setTextColor(BLACK);            //Texto Preto
  display.setTextColor(WHITE, BLACK);     //Texto Branco com fundo Preto

  display.setCursor(0,0);                 //Posição do Cursor

  display.print("ITALO");                 //Escreve o Texto

  display.setCursor(0,20);
  display.setTextSize(1);
  display.print("Display Nokia 5110");

  display.display();

  //Pisca a luz de fundo
  static bool backLight = LOW;
  backLight = !backLight;
  digitalWrite(BLpin, backLight);
  
  delay(5000);
}

Conclusão

Agora que você já sabe como usar o Display Nokia 5110 com o Arduino, que tal fazer um dos projetos aqui do nosso blog? Acesse os post abaixo e escolha o que mais gostar:

Circuito montado com Arduino Nano e Display Nokia 5110

Gostou de aprender como utilizar o Display Nokia 5110? Não se esqueça de deixar um comentário nos contando o que achou! 

Faça seu comentário

Acesse sua conta e participe

6 Comentários

  1. Pessoal, criei uma mini aplicação web pra desenhar e exportar os bitmaps compatíveis com o display nokia 5110 (PCD 8544)

    https://pcd8544designer.web.app/

    1. Olá!

      Show, obrigado por compartilhar conosco!

      Abraços!
      Vinícius – Equipe MakerHero

  2. Tem como usar simultaneamente na mesma placa arruíno 2 displays nokia 5110 desses? tentei fazer assim e não deu certo
    Adafruit_PCD8544 display = Adafruit_PCD8544(8, 9, 10, 11, 12);
    Adafruit_PCD8544 display2 = Adafruit_PCD8544(3, 4, 5, 6, 7);

    porem quando muda o nome display para display2 ela muda de cor na ide do arruíno de laranja pra preto.

    será que tem essa possibilidade?

    1. Olá Robert!

      O caso do display aparecer em laranja é porque ele está marcado como palavra chave em alguma biblioteca, por isso aparece realçado em laranja. Mas nesse caso ele é utilizado como nome de variável. Não há problema nenhum em o display2 ficar em preto.

      Quanto à conectar os dois, você pode sim, e para “economizar” saídas, você pode utilizar os mesmos pinos, deixando apenas o CS/CE diferente. Esse pino é responsável por dizer qual display deve mostrar aquela informação.

      Abraços!
      Vinícius – Equipe MakerHero

  3. bom dia Italo pode me dar uma força , sou novo com arduino então…. qdo usei o seu código…. deu a seguinte mensagem de erro ( o que devo fazer.?) peço sua ajuda:

    Arduino: 1.8.13 (Windows 7), Placa:”Arduino Nano, ATmega328P”

    Foram encontradas múltiplas bibliotecas para “Adafruit_GFX.h”

    In file included from C:\Users\FERNANDO\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_GrayOLED.cpp:20:0:

    C:\Users\FERNANDO\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_GrayOLED.h:30:10: fatal error: Adafruit_I2CDevice.h: No such file or directory

    #include

    ^~~~~~~~~~~~~~~~~~~~~~

    compilation terminated.

    Usado: C:\Users\FERNANDO\Documents\Arduino\libraries\Adafruit_GFX_Library

    Não usado: C:\Users\FERNANDO\Documents\Arduino\libraries\Adafruit-GFX-Library-master

    Foram encontradas múltiplas bibliotecas para “Adafruit_PCD8544.h”

    Usado: C:\Users\FERNANDO\Documents\Arduino\libraries\Adafruit_PCD8544_Nokia_5110_LCD_library

    Não usado: C:\Users\FERNANDO\Documents\Arduino\libraries\Adafruit-PCD8544-Nokia-5110-LCD-library-master

    exit status 1

    Erro compilando para a placa Arduino Nano

    1. Olá Fernando,

      Vá na pasta libraries do Arduino e veja se as bibliotecas não foram instaladas mais de uma vez.

      Abraço!
      Rosana – Equipe MakerHero