Programando-un-módulo-LCD

Nesta lição vais aprender a escrever num módulo LCD.

Ecrãs de cristais líquidos

Um LCD (liquid crystal display, ou ecrã de cristais líquidos) é um ecrã espalmado e plano, formado por um número de píxels a cores ou monocromáticos, colocados à frente de uma fonte de luz ou reflectora. É frequentemente utilizado em dispositivos electrónicos a pilhas, uma vez que utiliza quantidades muito pequenas de energia eléctrica. Graças a eles, é possível oferecer ao utilizador, informação sobre o que está a acontecer no programa, o que se traduz em algo muito útil e permite realizar projectos mais interactivos. Nesta lição vamos usar um Modulo LCD I2C/SPI. Com este modulo, apenas são necessários 2 sinais para mostrar informação, quando se controla por I2C, ou 3 sinais em caso de controla-lo por SPI. Este LCD em concreto possui 20 colunas e 4 linhas, o que nos permite escrever até 80 caracteres (com a biblioteca que usaremos apenas se podem escrever caracteres ASCII).

LCD_front LCD_IICSPI_01

Preparando o projecto

Para programar o módulo LCD, necessitamos de utilizar uma biblioteca. O qué é uma biblioteca? É simplesmente, uma série de funções que alguém escreveu para nos simplificar e facilitar o trabalho. Isto significa, que em vez de termos que escrever nós os valores nos pinos, temos ao nosso dispor, funções de alto nível como lcd.print(“ola”) que farão todo o trabalho sujo para nós. A biblioteca utilizada para controlar os ecrãs LCD chama-se liquidCrystal. Contudo, esta livraria do Arduino está pensada para LCDs que necessitam de 6 sinais para serem controlados. Graças ao modulo IIC/SPI, o LCD desta lição apenas necessita de 4, por isso na bq,  modificámos a livraria para que possa funcionar correctamente.

 

Como em lições anteriores, utilizaremos o Codebender como ambiente de desenvolvimento. Para poder utilizar esta biblioteca, devemos criar um projecto novo e adicionar os arquivos incluídos na biblioteca que acabámos de descarregar. Mostramos-te como se faz neste vídeo:

Uma vez que o nosso projecto contenha esses 4 arquivos, vamos conectar o LCD e começar a programá-lo.

Conectar o módulo LCD

O módulo LCD dispõe de 4 pinos para conectar (no modo IIC). Estes pinos são:

  1. SCL: o sinal de relógio
  2. SDA: o sinal do LCD
  3. VCC, a tensão da alimentação
  4. GND, a massa

A conexão deste componente deve ser sempre a mesma (para que seja compatível com a biblioteca bqLiquidCrystal. Se utilizares outra biblioteca, não têm que ser assim). conexion_LCD

NOME                NÚMERO DO PINO                COR DO PINO               
SCL A5 Azul
SDA A4 Azul
VCC A5 Vermelho
GND A5 Preto

 Olá LCD

Já temos a biblioteca necessária e tudo está conectado. Vamos fazer o Olá Mundo! mostrando no ecrã, o texto Curso de Arduino. Aqui tens o código:

Vamos analisar por partes:

Declarar o objecto LiquidCrystal

O tipo de variável LiquidCristal será o que nos permitirá controlar o módulo LCD. Por isso declaramos uma variável global deste tipo, que neste caso chamamos lcd e iniciamo-la com o valor 0. A partir de agora, todas as operações no LCD serão do tipo lcd.xxx.

Inicializar o LCD

 

Como sempre, todas as inicializações são feitas na função setup(). Inicializamos o lcd, indicando o número de linha e colunas. O LCD que estamos a usar é de 4 lx 20, e portanto indicamos esses valores. Posteriormente limpamos qualquer “resíduo” que possa estar no ecrã.

Escrever

Tal como fizemos anteriormente, utilizamos uma variável global para realizar uma acção somente uma vez, e quando estiver feita, começamos a escrever.

  • lcd.clear(). Limpamos todo o que exista no ecrã,mas não é necessário, pois já o fizemos no  setup()
  • lcd.setCursor(0,0). Indicamos em que coluna e linha desejamos escrever, e este caso, será na linha 0 e coluna 0, ou seja, canto superior esquerdo.
  • lcd.print(“Curso de Arduino”). Finalmente escrevemos o texto que desejamos imprimir.

Se compilarmos e enviarmos este programa para a placa, teremos o seguinte resultado:

curso_arduino_lcd

Mover texto pelo ecrã

E se agora quisérmos que o texto “bq” aparecesse movendo-se por todo o ecrã? Deixamos-te aqui o código para que o experimentes, o analises, e se quiseres, para que o possas modificar para fazer coisas diferentes: