Utilizando display de LCD com o Arduino

Olá a todos,

Até o momento utilizamos a porta serial do Arduino em conjunto com o monitor serial do IDE para recebermos mensagens dos nossos programas como a temperatura ou a intensidade de luz do ambiente. Nesse post aprenderemos como utilizar um display de cristal liquido para dispensar o uso do cabo USB e do computador.

Nesse exemplo utilizaremos um display LCD de 2 linhas e 16 posições por linhas, mas existem outros modelos disponíveis no mercado. Para esses outros modelos é importante você consultar o datasheet, que normalmente está disponível na internet, para verificar as conexões necessárias.

Para montarmos o circuito coloque o display na protoboard e também um potenciômetro. O potenciômetro será utilizado para controlarmos o brilho do LCD. Em seguida ligue o terminal da esquerda do potenciômetro no terra (GND) do Arduino e no terminal 1 do display (o terminal mais próximo da borda do LCD). Conecte também no terra os terminais 5 e 16 do LCD.

Agora conecte o pino de 5V do Arduino no terminal da direita do potenciômetro e também nos pinos 2, 11 e 15 do LCD. Conecte o terminal 3 do LCD no terminal central do potenciômetro.

O próximo passo é conectar o terminal 4 do LCD no pino 12 do Arduino e o terminal 6 do LCD no pino 11 do Arduino. Conecte também os terminais 11, 12, 13 e 14 do LCD nos pinos 5, 4, 3 e 2 do Arduino respectivamente. Revise todas as conexões utilizando a imagem e os diagramas do circuito que estão abaixo:

Circuito utilizado no post
Circuito utilizado no post

Abaixo temos o esquema elétrico e o desenho elaborado no simulador:

Diagrama elétrico do circuito utilizado
Diagrama elétrico do circuito utilizado
Modelo do circuito
Modelo do circuito

Passaremos agora para o desenvolvimento do programa que receberá textos pela porta serial e exibirá esses textos no LCD.

O primeiro passo é incluir no nosso programa o arquivo com as funcionalidades do LCD através do comando #include < LiquidCrystal.h >. Esse comando importa todas as funcionalidades existentes do arquivo informado para o nosso programa.

Importado o arquivo o próximo passo será a declaração de um objeto do tipo LiquidCrystal para operarmos o LCD e de uma variável inteira para controlar em qual linha do LCD escreveremos a mensagem. Note que no construtor do objeto do tipo LiquidCrystal devem ser informados os pinos do Arduino que estão conectados ao LCD.

O objeto do tipo LiquidCrystal possui métodos que facilitam o uso do LCD dispensando a necessidade de controlar diretamente os pinos do Arduino.

Em seguida escreva na função setup a configuração do LCD com uso do método begin. Nesse método devem ser informadas a quantidade de colunas e quantidade linhas do display. Escreva também na função setup a configuração da porta serial.

Início do código
Início do código

Passaremos para o desenvolvimento da função loop. O primeiro passo é verificarmos a quantidade de caracteres disponíveis na porta serial com o método available. Note que no programa foi limitada a quantidade de caracteres em 16 para evitar estouros na linha do LCD.

Em seguida declare uma variável do tipo String. Esse tipo de variável representa uma cadeia de caracteres, ou seja, um texto. O próximo passo é ler os caracteres disponíveis na porta serial com o método read e adicionarmos esses caracteres na variável String. Como o método read do objeto Serial lê apenas um caractere por vez colocamos esse trecho de código em uma laço do tipo FOR para lermos todos os caracteres.

Com o texto na memória do programa vamos primeiro escrever no LCD uma linha em branco para limpar a mensagem anterior para em seguida escrever a nossa mensagem. Ambas as instruções são executadas com o método print. Note que sempre na sequência da chamada do método print utilizamos o método setCursor para ajustarmos o cursos na posição no início da linha.

O método setCursor recebe dois parâmetros: o primeiro é o índice da coluna onde desejamos escrever o próximo caractere e o segundo parâmetro é o índice da linha do display onde o texto será escrito.

O último passo é alterarmos a variável que controla linha do display para na próxima execução da função loop o programa escrever na outra linha. Caso deseje limpar a próxima linha basta pressionar o botão Send do monitor serial para enviar um texto em branco.

Código da função loop
Código da função loop

Compile e transfira o programa para o Arduino. Após o programa iniciado acesse o monitor serial, digite algum texto e pressione o botão Send. O texto deverá aparecer no LCD, mas caso nada apareça mexa na haste do potenciômetro para alterar o brilho do texto.

Projeto em funcionamento
Projeto em funcionamento

Onde encontrar alguns dos componentes:

Obrigado pela atenção e até o próximo post!

Deixe um comentário

O seu endereço de e-mail não será publicado.