Está desenvolvendo um projeto de automação residencial e gostaria de…
Como usar com Arduino – Display LCD 84×48 Nokia 5110
– Descrição:
O display LCD é uma interface de comunicação visual e está presente em muitos aparelhos domésticos, eletroeletrônicos, automóveis e instrumentos de medição.
O Display LCD 84×48 Nokia 5110 possui 84 colunas e 48 linhas, além disso, também possui backlight (fundo) branco. O grande diferencial do Display LCD 84×48 Nokia 5110 está na sua capacidade de exibir conteúdos gráficos. Em projetos com arduino (ou outros microcontroladores) pode ser utilizado em processos onde será necessário exibir informações em tempo real, tais como temperatura, umidade, valor de tensão ou corrente, mensagens de erro, imagens gráficas e etc.
– Especificações e características (Display Vermelho):
– Controlador: PCD8544
– Tensão de operação: 3,3VDC
– Tamanho da tela: 1,6”
– Backlight (fundo):branco
– Interface: serial de 4Mb/s
OBS: no mercado há variações do Display Nokia 5110 e você pode encontra-lo na cor vermelha ou na cor azul. O de cor vermelha possui alimentação e nível lógico de 3.3V, já o azul funciona com alimentação e nível lógico de 3 a 5V. Além disso, a nomenclatura dos pinos do display pode ser diferente. Para esta prática eu utilizei o display vermelho, contudo, a prática pode ser executada no display azul.
– Aplicações:
Projetos com Arduino ou outras plataformas microcontroladas em que seja necessário exibir informações em tempo real, tais como temperatura, umidade, valor de tensão ou corrente, mensagens de erro e etc.
– Proposta da prática:
Utilizar o Display LCD 84×48 Nokia 5110 em conjunto com o Arduino para exibir algumas informações.
– Lista dos itens necessários:
01 – Arduino com Cabo USB
01 – Display LCD 84×48 Nokia 5110 (Vermelho / Azul)
01 – Conversor de Nível Lógico 3.3V / 5V de 8 Canais
01 – Resistor de 220Ω
01 – Protoboard
19 – Cabos Jumper macho-macho
OBS: caso não possua o Conversor de Nível Lógico 3.3V / 5V de 8 Canais você pode utilizar 10 Resistor de 4,7KΩ para montagem dos 5 divisores de tensão que irão substituir o conversor. Conforme mencionado anteriormente, o display vermelho funciona com tensão de 3.3V. O Arduino possui nível lógico de 5V em seus pinos. Portanto, para reduzirmos a tensão de 5V do Arduino para 3.3V é necessário o uso do conversor de nível lógico ou divisores de tensão.
– Esquema de ligação da prática (Conversor de Nível Lógico 3.3V / 5V de 8 Canais):
(Clique na imagem para ampliar)
– Esquema de ligação da prática (Divisores de tensão):
(Clique na imagem para ampliar)
– Esquema de ligação da prática (Display Azul):
(Clique na imagem para ampliar)
– Tutorial de instalação e configuração do ambiente de programação do Arduino:
Arduino – Instalação e Configuração da IDE no Windows
– Biblioteca:
Download Adafruit PCD8544 Nokia 5110 LCD
– Importando bibliotecas para o ambiente de programação do Arduino:
Arduino – Importando bibliotecas para a IDE
– Código:
OBS: no início do código há uma tabela de conexão dos pinos entre o display e o Arduino.
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
/*CONEXÕES ENTRE O DISPLAY NOKIA 5110 E O ARDUINO*/ // 8 Pino LIGHT / BL / (LED) ---> Pino 3.3V / (Pino 5V no Display Azul) // 7 Pino SCK / CLK / (SCLK) ---> Pino 6 // 6 Pino DIN / (DN<MOSI>)------> Pino 5 // 5 Pino DC / (D/C) -----------> Pino 4 // 4 Pino RST ------------------> Pino 8 // 3 Pino CS / CE / (SCE) ------> Pino 3 // 2 Pino GND ------------------> Pino GND // 1 Pino VCC ------------------> Pino 3.3V /*CONEXÕES ENTRE O DISPLAY NOKIA 5110 E O ARDUINO*/ #include <SPI.h> //INCLUSÃO DE BIBLIOTECA #include <Adafruit_GFX.h> //INCLUSÃO DE BIBLIOTECA #include <Adafruit_PCD8544.h> //INCLUSÃO DE BIBLIOTECA //OBJETO DO TIPO Adafruit_PCD8544 COM OS PARÂMETROS (PINOS) Adafruit_PCD8544 display = Adafruit_PCD8544(6, 5, 4, 3, 8); int rotatetext = 0; //VARIÁVEL DE CONTROLE DA ROTAÇÃO DO TEXTO NO DISPLAY void setup(){ Serial.begin(9600); //INICIALIZA A SERIAL display.begin(); //INICIALIZA O DISPLAY display.setContrast(20); //DEFINE O CONTRASTE DO DISPLAY display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY display.display(); //EFETIVA A ESCRITA NO DISPLAY } void loop(){ rotatetext = 0; //REINICIA A CONTAGEM DA VARIÁVEL APÓS INÍCIO DO LOOP /*EXIBE TEXTO SIMPLES*/ display.setTextSize(1); //DEFINE O TAMANHO DA FONTE DO TEXTO display.setTextColor(BLACK); //DEFINE A COR DO TEXTO display.setCursor(0,0); //POSIÇÃO EM QUE O CURSOR IRÁ FAZER A ESCRITA (COLUNA,LINHA) display.println("Ola Mundo!"); //ESCREVE O TEXTO NO DISPLAY display.display(); //EFETIVA A ESCRITA NO DISPLAY delay(2000); //INTERVALO DE 2 SEGUNDOS display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY /*EXIBE TEXTO SIMPLES*/ /*CORES DO TEXTO INVERTIDO (TEXTO EM BRANCO E FUNDO PRETO)*/ display.setTextColor(WHITE, BLACK); //TEXTO INVERTIDO display.setCursor(0,0); //POSIÇÃO EM QUE O CURSOR IRÁ FAZER A ESCRITA (COLUNA,LINHA) display.println("Ola Mundo!"); //ESCREVE O TEXTO NO DISPLAY display.display(); //EFETIVA A ESCRITA NO DISPLAY delay(2000); //INTERVALO DE 2 SEGUNDOS display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY /*CORES DO TEXTO INVERTIDO (TEXTO EM BRANCO E FUNDO PRETO)*/ /*TEXTO COM FONTE EM TAMANHO 2*/ display.setTextColor(BLACK); display.setCursor(0,0); //POSIÇÃO EM QUE O CURSOR IRÁ FAZER A ESCRITA (COLUNA,LINHA) display.setTextSize(2); //DEFINE O TAMANHO DA FONTE DO TEXTO display.println("Ola!"); //ESCREVE O TEXTO NO DISPLAY display.display(); //EFETIVA A ESCRITA NO DISPLAY delay(2000); //INTERVALO DE 2 SEGUNDOS display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY /*TEXTO COM FONTE EM TAMANHO 2*/ /*EXIBE A NUMERAÇÃO DE 1 A 9*/ display.setTextSize(1); //DEFINE O TAMANHO DA FONTE DO TEXTO display.setCursor(0,0); //POSIÇÃO EM QUE O CURSOR IRÁ FAZER A ESCRITA (COLUNA,LINHA) display.println(123456789); //ESCREVE A SEQUÊNCIA NO DISPLAY display.display(); //EFETIVA A ESCRITA NO DISPLAY delay(2000); //INTERVALO DE 2 SEGUNDOS display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY /*EXIBE A NUMERAÇÃO DE 1 A 9*/ /*EXIBE UM NÚMERO EM HEXADECIMAL (0xFF) E O RESPECTIVO DECIMAL (255)*/ display.setCursor(0,0); //POSIÇÃO EM QUE O CURSOR IRÁ FAZER A ESCRITA (COLUNA,LINHA) display.print("0x"); display.print(0xFF, HEX); //ESCREVE O TEXTO NO DISPLAY display.print("(HEX) = "); //ESCREVE O TEXTO NO DISPLAY display.print(0xFF, DEC); //ESCREVE O TEXTO NO DISPLAY display.println("(DEC)"); //ESCREVE O TEXTO NO DISPLAY display.display(); //EFETIVA A ESCRITA NO DISPLAY delay(2000); //INTERVALO DE 2 SEGUNDOS display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY /*EXIBE UM NÚMERO EM HEXADECIMAL (0xFF) E O RESPECTIVO DECIMAL (255)*/ /*EXIBE UM SÍMBOLO DA TABELA ASCII DE CARACTERES*/ display.setCursor(0,0); //POSIÇÃO EM QUE O CURSOR IRÁ FAZER A ESCRITA (COLUNA,LINHA) display.setTextSize(2); //DEFINE O TAMANHO DA FONTE display.write(3); //ESCREVE O NÚMERO 3 QUE REPRESENTA O SÍMBOLO DE UM CORAÇÃO display.display(); //EFETIVA A ESCRITA NO DISPLAY delay(2000); //INTERVALO DE 2 SEGUNDOS display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY /*EXIBE UM SÍMBOLO DA TABELA ASCII DE CARACTERES*/ /*ROTACIONA O TEXTO NO DISPLAY*/ while(rotatetext < 5){ //ENQUANTO rotatetext FOR MENOR QUE 5, FAZ display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY display.setRotation(rotatetext); //ROTACIONA O TEXTO EM 90º display.setTextSize(1); //DEFINE O TAMANHO DA FONTE display.setTextColor(BLACK); //DEFINE A COR DO TEXTO display.setCursor(0,0); //POSIÇÃO EM QUE O CURSOR IRÁ FAZER A ESCRITA (COLUNA,LINHA) display.println("Rotacionando"); //ESCREVE O TEXTO NO DISPLAY display.display(); //EFETIVA A ESCRITA NO DISPLAY delay(1000); //INTERVALO DE 1 SEGUNDOS display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY rotatetext++; } /*ROTACIONA O TEXTO NO DISPLAY*/ } |
– Resultado final:
Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!
Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.
Obrigado e até a próxima!
Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.
Postagem anterior: Blynk – Utilizando com o Módulo Ethernet ENC28J60 e Arduino
Próxima postagem: Como usar com Arduino – Conversor de Nível Lógico 3.3V / 5V
Muito bom blog, parabens, simples e direto ao ponto.
com informaçoes necessárias.
abraço
Olá Leonardo.
Agradeço pelo comentário e reconhecimento!
Vlw!!!
COMO DIMINUI A CLARIDADE?
Olá Pedro.
Agradeço pelo comentário!
Leia a documentação da biblioteca e veja qual comando executa o que precisa.