Início
/
Projetos Arduino
/
Projetos Squids
/
Básico
/
Projeto 47 - Criar comandos para limpar tela e pular linha no display LCD.
Projeto 47 - Criar comandos para limpar tela e pular linha no display LCD.
Angelo Luis Ferreira | 29/11/2018
Acessos: 24.841
Básico - Projeto 47
Comando para limpar tela e pular linha no display LC
Objetivo
Neste projeto vamos montar um display LCD para mostrar textos digitados pelo teclado do computador. Através do monitor serial do IDE do Arduino você poderá digitar diretamente os textos que serão mostrados no display LCD. Quando precisar limpar a tela do display ou pular o texto da linha 1 para a linha 2, basta clicar as teclas definidas como comandos para estas funções.
Este projeto é bem simples e irá apresentar noções de alguns conceitos muito importantes para utilização do display LCD nos seus projetos, sendo eles:
- Comunicação serial usando a função Serial.read()
- Método simples para criar comandos úteis para o display LCD
Aplicação
Para fins didáticos e projetos display de cristal líquido.
Componentes necessários
Referência
|
Componente
|
Quantidade
|
Imagem
|
Observação
|
Protoboard |
Protoboard 830 pontos |
1 |
|
No mínimo utilizar protoboard com 830 pontos
|
Jumpers |
Kit cabos ligação macho / macho |
1 |
|
|
Display LCD |
Display LCD 16 X 2 com pinos soldados |
1 |
|
LCD que utilize o controlador HD44780 (veja na descrição ou datasheet do componente)
O display poderá ser de qualquer cor (fundo verde, azul ou vermelho)
|
Potenciômetro |
Potenciômetro 10K (linear)
|
1 |
|
O valor do potenciômetro aumenta quando giramos o eixo do componente na direção do polo negativo para o polo positivo.
Obs.: Se não possuir potenciômetro de 10KΩ você poderá utilizar um de outro valor, de 1kΩ até 100kΩ.
|
Arduino UNO R3 |
Arduino UNO |
1 |
|
Você poderá utilizar uma placa Arduino UNO original ou similar
|
Montagem do Circuito
Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.
Atenção
1. Neste projeto vamos utilizar um display LCD 16x2 com controlador HD44780, que se adapta aos mais diversos projetos com vários modelos de placas e microcontroladores. Este display possui 16 colunas por 2 linhas com backlight (luz de fundo) verde, azul ou vermelha e tem 16 pinos para a conexão. Atenção: Utilize um display LCD com os pinos soldados.
2. Preste muita atenção na montagem do dsiplay LCD. Observe que utilizamos os 6 primeiros pinos do LCD, pulamos os 4 próximos e então utilizamos mais 6pinos. Veja a tabela abaixo:
3. Observe que nesse projeto o potenciômetro foi montado como um divisor de tensão, onde utilizamos os 3 terminais do componente:
Obs.: Ao girar o eixo do potenciômetro, o valor da tensão deverá aumentar do negativo para o positivo, ou seja, se a tensão do circuito for 5V, o potenciômetro irá variar de 0 a 5V.
3.1 No nosso exemplo, girando-se o eixo do potenciômetro no sentido horário, aumentamos a tensão na entrada do pino 3 do display e diminuímos o contraste dos caracteres com o back light (luz de fundo) até que não é mais possível visualizá-los. Fazendo o contrário, ou seja, diminuindo a tensão até o zero, teremos um contraste máximo entre os caracteres e a luz de fundo.
4. A montagem do nosso projeto foi realizada em um protoboard com linhas de alimentação não contínuas, onde acrescentamos jampers para a ligação. Verifique se o seu protoboard possui linhas de alimentação contínuas ou separadas.
Ligando o display LCD
Para visualizar o display funcionando, digite o código abaixo no ambiente de desenvolvimento IDE do Arduino. Faça a verificação e o upload:
/*******************************************************************************
*
* Testando o Display LC 16 X 2
* http://squids.com.br/arduino
*
*******************************************************************************/
//Carrega a biblioteca LiquidCrystal
#include <LiquidCrystal.h>
//Define os pinos que serão utilizados para ligação ao display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
//Define LCD 16 colunas por 2 linhas
lcd.begin(16, 2);
//Posiciona o cursor na coluna 0, linha 0;
lcd.setCursor(0,0);
//Envia o texto entre aspas para o LCD
lcd.print("Ola, meu nome e:");
//Posiciona o cursor na coluna 1, linha 1;
lcd.setCursor(1,1);
//Envia o texto entre aspas para o LCD
lcd.print("Squids Arduino");
}
void loop() {
}
ATENÇÃO: Se o display acender e não mostrar os caracteres provavelmente é em função do contraste. Gire o eixo do potenciômetro no sentido anti-horário para aumentar o contraste. Se mesmo assim o display não mostrar os caracteres, corrija a montagem do circuito e/ou o código.
Comandos do display LCD para a biblioteca LiquidCrystal
No projeto vamos utilizar alguns comandos de controle do display LCD através da biblioteca LiquidCrystal que já vem embutida na IDE do Arduino. Para conhecer todos os comandos desta biblioteca, acesse o link: Comandos display LCD para biblioteca LiquidCrystal e LiquidCrystal Library (Arduino Reference).
Obs.: Para acessarmos uma biblioteca embutida na IDE do arduino, assim como, para acessarmos um biblioteca local através de um header file, utilizaremos a diretiva #include.
Código do Projeto (Sketch)
1) Faça o dowload e abra o arquivo projeto47.ino no IDE do Arduino: DOWNLOAD - projeto47.ino
Ou se preferir, copie e cole o código abaixo no IDE do Arduino:
/*******************************************************************************
*
* Projeto 47 - Comando para limpar tela e pular linha no display LCD
* http://squids.com.br/arduino
*
*******************************************************************************/
#include <LiquidCrystal.h> //Carrega a biblioteca LiquidCrystal nativa na IDE
//Define os pinos que serão utilizados para ligação ao display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
Serial.begin(9600); // inicializa a comunicação serial
Serial.println("Comandos: & limpa a tela do displa e > pula uma linha");
Serial.println("Digite um texto:");
lcd.begin(16, 2); //Configuracoes LCD 16x2
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Squids Arduino");
lcd.setCursor(0,1);
lcd.print("Projeto 47");
}
void loop() {
if (Serial.available()) { //Espera digitar no monitor serial//
char cr = Serial.read(); // Lê a tecla digitada
if (cr == '&') { //determina um caracter para limpar a tela//
lcd.clear();
//apagando tela do monitor serial
Serial.println(' ');
Serial.println("--------------------");
Serial.println("Digite um novo texto:");
} else if (cr == '>') { //determina um caracter para pular para a linha de baixo//
lcd.setCursor(0,1);
Serial.println(' ');
} else {
// se o caracter digitado nao limpa e nem pula linha aparece para o display//
// nao aceita acentuacao //
lcd.write(cr);
Serial.print(cr);
}
}
}
Obs.: Você poderá substituir as teclas "&" e ">" utilizadas neste exemplo por quaisquer teclas que desejar. Basta alterar as linhas 28 e 35 do sketch.
Vídeo
Como o projeto deve funcionar
1. Ao executar o programa, abra o monitor serial do IDE do Arduino. Aguarde o monitor estar pronto para você digitar o texto.
Obs. 1: Teclando o comando " & " + [Enter] o programa limpa a tela do display LCD e teclando " > " o programa irá pular uma linha no display LCD e no monitor serial.
Obs. 2: Observe que utilizamos as teclas " & " e " > " para criar os nossos comandos neste exemplo. No entanto, você poderá utilizar outras teclas quaisquer do teclado para fazer a mesma função.
2. Vamos iniciar digitando o comando " & " para limpar a tela.
3. Digite um texto e tecle <Enter>. Se você digitar o comando " > " você obrigará o programa a alterar para a linha 2 do display LCD e pular uma linha no monitor serial.
4. Observe que o texto digitado após o comando " > " aparecerá na linha 2 do display LCD e em outra linha no monitor serial.
5. Digitando novamente o comando " & " o programa irá limpar a tela. Desta forma, você poderá iniciar um novo texto.
Desafios
Com base neste projeto, resolva os seguintes desafios: Desafio 31
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
Comentários