Como utilizar o Display LCD 16×2 no Arduino
O Display é um dispositivo eletrônico que permite a interação visual entre o usuário e a máquina. Usando este componente é possível enviar textos, números, símbolos, imagens ou indicar o que o microcontrolador está executado, os dados que estão sendo coletados e / ou os dados que estão sendo transmitidos.
A Figura 1 apresenta um display LCD 16 x 2 (16 colunas e 2 linhas), que permite a escrita de caracteres, números e pequenos símbolos criados pelo usuário.
A proposta deste projeto é exibir uma mensagem no display LCD 16 x 2. Conforme mencionado anteriormente, este display possui 16 colunas e 2 linhas, sendo muito utilizado na interação homem – máquina em processos em que é necessário exibir informações em tempo real, como umidade, temperatura, pressão, corrente ou tensão, entre outras.
Neste projeto vamos utilizar o display LCD 16 x 2 em conjunto com a placa Arduino para exibir a seguinte mensagem:
“Testando LCD
Blog da Robótica”
MATERIAIS NECESSÁRIOS
- 1 x Placa UNO SMD R3 Atmega328 compatível com Arduino UNO;
- 1 x Cabo USB;
- 1 x Protoboard;
- 1 x Display LCD 16 x 2;
- 1 x Resistor de 1 kΩ;
- Fios de jumper macho-macho.
ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES
Conecte os componentes na protoboard como ilustra a simulação abaixo, utilizando a protoboard, o display, o resistor e os jumpers. Verifique cuidadosamente os cabos de ligação antes de ligar sua placa UNO. Lembre-se que a placa UNO deve estar desconectado enquanto você monta o circuito.
Ao montar seu circuito na protoboard preste atenção nos seguintes pontos:
- O primeiro pino (VSS) do display deve ser conectado ao terra (GND);
- O segundo (VDD) deve ser alimentado com 5 V;
- O pino V0 é de ajuste do contraste do LCD e deve ser conectado ao terra (GND);
- O pino RS (Register Select) deve ser conectado ao pino digital 12;
- O pino RW (Read/Write) é utilizado para escolher se o display funcionará em modo de escrita (0, nível baixo) ou leitura (1, nível alto). Este pino deve ser conectado à porta digital 11;
- O pino E ativa o display ao ser colocado em nível alto e desativa com nível baixo. Este pino deve ser conectado à porta digital 10;
- Os pinos D0, D1, D2 e D3 não serão utilizados;
- Os pinos D4, D5, D6 e D7 são pinos de dados e devem ser conectados aos pinos digitais 5, 4, 3 e 2, respectivamente;
- O pino A do display é o ânodo do LED de iluminação e deve ser ligado ao pino 13, com um resistor de 1 kΩ;
- O pino K é o cátodo do LED de iluminação e deve ser conectado ao GND.
ELABORANDO O CÓDIGO
1. Incluir a biblioteca LiquidCrystal:
A biblioteca LiquidCrystal permite que uma placa Arduino controle displays LCD baseados no controlador HD44780 ou compatível, usado em nosso Shield Display LCD. Essa biblioteca é nativa do Arduino IDE.
Para saber mais sobre a biblioteca acesse: www.arduino.cc/en/Reference/LiquidCrystal
2. Criar objeto do tipo LiquidCrystal
Em seguida, criaremos o objeto lcd, do tipo LiquidCrystal, e informamos quais os pinos que estão conectados ao display, no seguinte formato: LiquidCrystal lcd(<pino RS>, <Pino enable>, <Pino D4>,<Pino D5>, <Pino D6>, <Pino D7>);
3. Função setup()
No setup, definiremos backLight como saída e colocaremos ela em nível lógico alto (HIGH), para que o LED de fundo do display LCD ligue.
A função lcd.begin(16, 2); configura o número de linhas e colunas do display LCD que serão utilizadas. Por sua vez, a função lcd.clear(); limpa a tela do display, para que ele inicie sem nenhum texto.
Para iniciar a escrita no display LCD precisamos colocar o cursor na posição na coluna 0 e linha 0. Para isso, usaremos a função lcd.setCursor(0, 0);. A partir daí, escreveremos a primeira parte do texto, que será feita a partir da função lcd.print(“Testando LCD”);.
Em seguida, iniciaremos a comunicação serial a partir da instrução Serial.begin(9600);.
4. Função loop()
No loop, chamaremos a função que desliga o display lcd.noDisplay() e liga o display lcd.display();.
Assim sendo, o Sketch deste projeto terá a seguinte estrutura:
/* --- COMO UTILIZAR O DISPLAY LCD 16 x 2 --- ================================================== == BLOG DA ROBOTICA - www.blogdarobotica.com == ================================================== Autora: Carol Correia Viana E-mail: contato@blogdarobotica.com Facebook: facebook.com/blogdarobotica Instagram:@blogdarobotica YouTube: youtube.com/user/blogdarobotica ================================================== */ #include <LiquidCrystal.h> //Inclusão da Biblioteca LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); int backLight = 13;// pino 13 responsável pelo controle do LED void setup() { pinMode(backLight, OUTPUT); digitalWrite(backLight, HIGH);// Liga backlight. Substituir 'HIGH' por 'LOW' para desligar a luz de fundo. lcd.begin(16, 2);//Colunas, linhas. Use 16,2 para display LCD 16x2 lcd.clear();// Inicializa o display com uma tela vazia lcd.setCursor(0, 0);//Posiciona o cursor na coluna 0, linha 0 (primeira linha) lcd.print("Testando LCD");//Escreve o texto desejado lcd.setCursor(0, 1);//Posiciona o cursor para a coluna 0, linha 1 (segunda linha) lcd.print("Blog da Robotica"); Serial.begin(9600);//Inicializa a comunicação serial em 9600 bits por segundo } void loop() { delay(1000); lcd.noDisplay();// Desliga Display: delay(1000); lcd.display();// Liga Display: }
Espero ter ajudado,
Obrigada a todos e em caso de dúvidas deixe seu comentário abaixo!
Att. Carol Correia Viana
Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.