14 maio 2013

Display LCD Nokia 5110

Hoje o assunto é o display LCD Nokia 5110, que é um módulo contendo um display monocromático com resolução de 84 x 48 pixels, o que permite algumas variações interessantes, como letras maiores e alguns efeitos gráficos.

display lcd nokia 5110 Arduino

Também tive alguns problemas para fazer esse display funcionar perfeitamente, porque se você procurar no Google, verá que quase todas as buscas apontam para a famosa biblioteca do Philips PCD8544. Ok, funcionou depois de várias tentativas, mas eu queria alguma coisa mais prática. Acabei encontrando uma biblioteca disponibilizada pela Adafruit, que comercializa este tipo de display no exterior.

Antes de mais nada, gostaria de frisar que este procedimento foi testado no display AZUL, que funciona com 5v. Se você tem um display desses na cor vermelha, tudo bem, mas use resistores limitadores de corrente, para que o seu display não seja danificado. O display vermelho, pelo que pesquisei, funciona apenas com 3,3 v.

Montar a biblioteca necessária para que esse display funcione é um capítulo à parte, mas vou resumir da seguinte maneira :

1 - Baixe a biblioteca principal e coloque na pasta \Libraries\PCD8544
2 - Baixe a biblioteca gráfica e coloque na mesma pasta

Resumido, vamos ao procedimento. Monte o circuito, observando a ligação :

  • Pino 12 do Arduino ligado no Pino 1 (RST) do display
  • Pino 11 do Arduino ligado no Pino 2 (CE) do display
  • Pino 10 do Arduino ligado no Pino 3 (DC) do display
  • Pino 9 do Arduino ligado no Pino 4 (Din) do display
  • Pino 8 do Arduino Ligado no Pino 5 (Clk) do display
  • Vcc no pino 6 (Vcc) do display
  • Vcc com resistor de 220 ohms no pino 7 (BL) do display
  • GND no pino 8 (GND) do display

display lcd nokia 5110





As bibliotecas foram armazenadas pela Adafruit num site chamado GITHUB. Acesse a biblioteca principal nesse link, ou copie e cole no seu navegador :

https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library

Aparecerá uma tela como esta, e você deve clicar em ZIP (seta vermelha), para baixar os arquivos desta biblioteca :



Conforme comentei, descompacte e coloque os arquivos numa pasta chamada PCD8544, dentro da pasta Libraries da IDE do seu Arduino.

Repita o procedimento para a biblioteca gráfica :

https://github.com/adafruit/Adafruit-GFX-Library

Sua pasta PCD8544 deve ficar mais ou menos assim :



Pronto. Para testar, carregue o programa abaixo :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//Programa : Teste display Nokia 5110 usando biblioteca Adafruit
//Autor : Arduino e Cia

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

// pin 8 - Serial clock out (SCLK)
// pin 9 - Serial data out (DIN)
// pin 10 - Data/Command select (D/C)
// pin 11 - LCD chip select (CS/CE)
// pin 12 - LCD reset (RST)

Adafruit_PCD8544 display = Adafruit_PCD8544(8, 9, 10, 11, 12);

void setup()   
{
  Serial.begin(9600);
  display.begin();
  display.setContrast(50); //Ajusta o contraste do display
  display.clearDisplay();   //Apaga o buffer e o display
  display.setTextSize(1);  //Seta o tamanho do texto
  display.setTextColor(BLACK); //Seta a cor do texto
  display.setCursor(0,0);  //Seta a posição do cursor
  display.println("Arduino & Cia!");  

  //Texto invertido - Branco com fundo preto
  display.setTextColor(WHITE, BLACK); 

  display.println("Arduino & Cia!");

  display.setTextSize(2); 
  display.setTextColor(BLACK);
  display.print("Arduino");
  display.display();
  delay(2000);
}

void loop()
{
  // Codigo adicional
}

Para finalizar, carregue o programa de exemplo da biblioteca, que mostra o uso das funções de círculo, retângulo, triângulo e gráficos. Carregue o programa de exemplo a partir da IDE do Arduino :

ARQUIVO -> EXEMPLOS -> pcd8544 -> PCDTEST

Por hoje é só. até a próxima !


10 comentários:

  1. Estou começando com Arduino e este exemplo funcionou muito bem!!!! Obrigado

    ResponderExcluir
    Respostas
    1. Obrigado pelo retorno. Abraço e volte sempre que possível. Valeu !

      Excluir
  2. Olá, utilizei seu exemplo no meu projeto e funcionou bem, porém estou com um probleminha, eu uso um sensor de temperatura e um beep, sempre que há uma variação de temperatura eu emito um beep e mudo os valores no display, porém quando o beep é emitido o display apaga e não exibe mais nada, você tem idéia de como resolver?

    ResponderExcluir
    Respostas
    1. Boa tarde Vantuil,

      Vamos tentar descobrir se isso é um problema eletrônico ou do programa. Você já tentou desconectar o beep e rodar o programa para ver se o problema continua ?

      Excluir
  3. Olá, boa noite, descobri o problema, para não ter que mexer no projeto eu utilizei os pinos de 6 ao 10, e inicializei com estes pinos, vendo novamente seu projeto, apesar de achar que não tinha nada haver, pois eu posso setar os pinos que quiser eu alterei para os pinos de 8 ao 12 e agora tá funcionando. Obrigado pela atenção, valeu mesmo...

    ResponderExcluir
    Respostas
    1. Opa, legal Vantuil ! Obrigado pelo retorno.

      Qualquer coisa, estamos aí. abraço !

      Excluir
  4. Muito bom. Testei com o display vermelho e por pouco não liguei em 5V. Deu certinho em 3.3V. Parabéns e obrigado por compartilhar seus conhecimento.

    ResponderExcluir
    Respostas
    1. Boa tarde José,

      Obrigado pelo retorno. Fiquei contente em ver que você leu o artigo inteiro e não danificou o display. rs. Continue assim. :-)

      Abraço e obrigado !

      Excluir
  5. Olá amigo ! Ótimo site ! parabéns ! Sucesso sempre .....
    Bem . eu acho que o meu display nao ta bom ! fiz a conexão exatamente que esta aqui no site. , baixei as bibliotecas necessárias .. mais não funcionou , acendeu a tela , mais nao apareceu nenhuma informação . nada..

    obs : meu display e da cor AZUL .

    Tem algo que posta testar . alguma coisa para fazer , para ver se realmente ta ruim o display ?

    Abraços

    ResponderExcluir
    Respostas
    1. Boa tarde Andre !

      Valeu amigo... espero sua visita sempre que possível. :)

      Olha, o que eu posso te falar é para rever a soldagem dos conectores, e também ver se não há nenhum mal contato no display propriamente dito. Estou falando isso pq já tive (e tenho, às vezes), exatamente o mesmo problema que você : o display acende, mas as letras não aparecem.

      O que não solucionou o problema, mas melhorou muito, foi não só soldar novamente os conectores, como desmontar o display (a parte da moldura, em alumínio), limpar, verificar os encaixes e montar novamente.

      Essa parte da desmontagem eu fiz em último caso, quando o display não queria mais funcionar, e deve ser feita com cuidado, porque esses displays são muito frágeis.

      Espero ter ajudado, e se conseguir descobrir qual o problema com o seu display, compartilhe aqui, por favor.

      Abraço !

      Excluir