- Materiais requisitados:
- Módulo de display gráfico Nokia 5110:
- Diagrama de circuito:
- Programa Arduino e funcionamento:
O próprio nome icônico “ Nokia 5110 ” deveria ter trazido lembranças do robusto celular Nokia, que era muito popular durante os anos 90. O modelo 5110 veio com um Display Gráfico que era suficiente para funcionar como uma tela para o celular da época. Essa tela era capaz de exibir de tudo, desde caracteres alfanuméricos a pequenos gráficos, tudo o que é necessário para um telefone celular. À medida que a Terra girava, novos técnicos com telas de toque brilhantes surgiram e esta tela não está mais em uso. Mas, felizmente, eles podem ser usados em aplicações eletrônicas onde um pequeno gráfico precisa ser exibido e evita gastar dinheiro em grandes telas de LCD. Portanto, neste tutorial, aprenderemos como fazer a interface de um LCD gráfico Nokia 5110 com o Arduino e como fazê-lo funcionar.
Esses LCD têm pixels em preto e branco com dimensões de 84 × 48. Eles podem parecer monótonos, mas ainda podem ser usados para exibir gráficos decentes para seus projetos e podem ser facilmente usados com microcontroladores como o Arduino. Então vamos começar….!
Materiais requisitados:
- Placa Arduino (qualquer versão)
- Visor Nokia 5110
- Fios de conexão
Módulo de display gráfico Nokia 5110:
Existem dois tipos de LCDs gráficos disponíveis no mercado. Um com eletrodos de solda acima e abaixo da tela e o outro com eletrodos de solda somente na parte inferior do visor. O que estamos usando pertence ao tipo 2, onde existem pads apenas sob o display. Ambos os módulos funcionam da mesma forma e, portanto, as conexões são as mesmas para ambos. Portanto, independentemente do módulo, você pode seguir o tutorial.
Como dito anteriormente, o Nokia 5110 Graphical LCD possui 84 pixels na horizontal e 48 pixels na vertical. O tamanho total da tela é 1,72 'x 1,72'. O módulo possui 6 pinos de entrada com os quais podemos fazer interface com qualquer microcontrolador por meio de comunicação SPI. O IC de interface que se comunica entre o display e o Arduino é o IC controlador de display Philips PCD8544, cuja folha de dados pode ser encontrada aqui. No entanto, se você estiver usando o Arduino para se comunicar com este IC, não precisamos nos preocupar com a folha de dados, pois há bibliotecas prontas para serem baixadas e usadas. O módulo que estamos usando aqui é mostrado abaixo.
Diagrama de circuito:
O diagrama de circuito completo para conectar o LCD gráfico do Nokia5110 com o Arduino é fornecido abaixo.
O módulo de exibição possui 8 pinos que são usados para configurar uma comunicação SPI com o Arduino. O módulo é alimentado com o pino de 3,3 V da placa Arduino. Observe que esses módulos funcionam com lógica de 3,3 V e, portanto, não fornecem 5 V ao pino Vcc dos visores. Eu conectei o pino do display diretamente ao Arduino, embora o LCD funcione na lógica de 3,3 V e o Arduino na lógica de 5 V, porque só então descobri que o LCD funcionava corretamente. Você pode usar um divisor de tensão para converter 5 V em 3,3 V, se necessário, mas para mim funciona apenas sem a conversão lógica. As conexões são muito simples e diretas de fazer. Depois de concluir as conexões, sua configuração seria parecida com a mostrada abaixo.
Programa Arduino e funcionamento:
Siga as etapas abaixo para programar seu Arduino para o Nokia 5110 Display. As etapas pressupõem que você já tenha instalado o IDE do Arduino e esteja familiarizado com seu uso.
Etapa 1: Abra o IDE do Arduino em seu computador e selecione a placa apropriada no menu de ferramentas após conectar seu Arduino ao computador.
Etapa 2: Clique aqui para baixar a biblioteca de exibição Nokia 5110 da biblioteca Adafruit do repositório GitHub.
Etapa 3: Depois que o arquivo Zip for baixado, selecione Sketch -> Incluir Biblioteca -> Adicionar biblioteca.ZIP e navegue até o local onde o ZIP foi baixado.
Nota: Você também terá que baixar o núcleo do Adafruit GFX Graphics que faz todos os círculos, texto, retângulos, etc. Você pode obtê-lo em https://github.com/adafruit/Adafruit-GFX-Library e instalá-lo da mesma maneira.
Etapa 4: Agora abra o programa de exemplo selecionando Arquivo -> Exemplos -> Adafruit PCD Nokia 5110 LCD Library -> pcdtest e clique no botão de upload
Etapa 5: Depois de fazer o upload do programa, pressione o botão de reset no Arduino e você deverá ver o programa de exemplo exibindo todas as animações conforme mostrado no vídeo fornecido no final deste tutorial.
Você pode ler o programa de exemplo para entender as várias funções integradas que podem ser usadas para executar vários projetos gráficos no LCD. Mas vamos dar um passo adiante e tentar exibir o logotipo da CircuitDigest na tela LCD.
Agora abra a imagem necessária no Paint e redimensione a imagem. O tamanho máximo de imagem que podemos usar em nosso monitor é 84 × 48.
Após redimensionar a imagem, salve a imagem como bitmap (preto e branco) usando a opção salvar como no Paint. Para exibir a imagem como bitmap em nossa tela LCD, precisaremos de um software que possa converter a imagem bitmap em código. Você pode baixar o software clicando aqui. Depois de baixado, descompacte o arquivo e clique em “BitmapEncoder” para iniciar o aplicativo. Abra a imagem de bitmap que acabamos de salvar usando este software para obter a matriz de valores codificados. Você pode copiar esses valores diretamente e colá-los no array do Arduino. O valor mostrado pelo software para nosso logotipo é mostrado abaixo
Como você pode ver, o array começa com o valor 48, 48 esse é o tamanho da nossa imagem. Não devemos adicionar isso em nosso array. Portanto, remova os dois primeiros valores e use o restante como o valor da matriz no programa. A matriz terá a aparência abaixo. O programa completo é fornecido no final desta página para sua referência.
static const unsigned char Logo PROGMEM = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111111, B00000000, B0000000, B11000010000, B00000000, B00000000000, B11000010000 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111100, B11000000, B00111110, B00000000, B00000000, B11111100, B01111110, B00000000, B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B00000111, B11110001, B11111111, B11111111, B11100000, B11100000, B00000111, B11100001, B11111111, B11100011, B11111000, 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, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11111111, B11111000, B11111 B11, 1100011 B110011, B11001100011, B11001100011, B110001100011, B11000110001100011, B111100011, B111100011, B1100011, B110001100011, B1100011, B111100011, B111100011, B1100011, B1100011, B1100011, B1100011, B1100011, B1100011, B110001111. 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, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B000000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B0000110000, B00000000, B00000011000011, B11000011, B11000011000011000011000011000011000011000011000011, B11000011000011000011000011, B11000011000011 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B00000001, B11111111, B01111111, B11111111, B11110000, B00001111, B11100000, B11111111, B11111111, B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B00110111, B110000001, B1100001100001, B1100001100001, B110000110001, B110000110001, B110000110001, B11000011000 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, B0000110000, B00000000, B00001111, B11111111, B10000111, B11110000, B00000000, B00000000, B0000110000, B11000011, B110000110000 B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
Agora, para exibir esse bitmap, temos que usar as seguintes linhas de código. Onde os dados anteriores na tela são apagados e a nova imagem bitmap é gravada.
display.clearDisplay (); display.drawBitmap (20, 0, Logo, 48, 48, 1); display.display ();
A linha display.drawBitmap (20, 0, Logo, 48, 48, 1); exibir a posição, tamanho e cor da imagem bitmap. A sintaxe pode ser fornecida como.
display.drawBitmap (X_Position, Y_Position, Nome do Array, comprimento da imagem, largura da imagem);
O comprimento e a largura da imagem podem ser obtidos a partir dos dois primeiros elementos da matriz, respectivamente, conforme explicado anteriormente. Quando este código for executado, obteremos o bitmap exibido em nossa tela LCD, conforme mostrado abaixo.
Você também pode exibir um texto simples, conforme mostrado abaixo:
Espero que você tenha entendido o tutorial e feito a interface do seu LCD Nokia 5110 com o Arduino. Com esta exibição gráfica na manga, você pode criar muitos projetos que requerem pequenos detalhes gráficos. O trabalho completo pode ser encontrado no vídeo abaixo. Se você enfrentar qualquer problema para fazer isso funcionar, você pode usar o fórum para postar seu problema ou as seções de comentários abaixo.