segunda-feira, 20 de outubro de 2014

Módulo Display LCD 16x2 com botões para Arduino



Apresentamos agora o módulo de display LCD para Arduino. Um display é basicamente um módulo de unidade de saída onde as informações contidas no Arduino podem ser visualizadas através dele. Assim como um monitor, uma caixa de som, ou uma impressora, uma unidade de saída provê dados no sentido dispositivo -> usuário e é útil sempre que necessitamos visualizar alguma informação interna ao sistema em questão.

Este módulo tem a particularidade de ser um dispositivo híbrido já que tem 6 botões e pode funcionar também como unidade de entrada (usuário -> dispositivo). Um destes botões é um botão de reset e os outros 5 podem ter a função definida por software. Este módulo tem a vantagem de usar apenas um canal analógico (A0) como via de entrada para os botões. Isto é feito usando divisores fixos de tensão e o circuito correspondente é o que se segue.



Com este tipo de topologia para os botões, sugiro que um teste experimental seja feito preliminarmente para saber na realidade quais os valores de tensão que aparecem. Com o auxílio de um voltímetro DC, colocando a ponta de prova negativa em qualquer GND do Arduino ou do módulo LCD e a outra em A0. Depois é só multiplicar este valor por 1023/5.

Outro teste é fazer aparecer no display o valor em BCD para cada tensão que aparece em A0 a cada botão pressionado. O algoritmo seguinte tem esta função e utiliza a biblioteca LiquidCrystal.h.


#include <LiquidCrystal.h> 
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);  // Configura Módulo LCD

void setup() {
  lcd.begin(16, 2);                        // Inicia módulo LCD
  lcd.setCursor(0,0);                      //
  lcd.clear();                             // Limpa LCD
}

void loop() {
  lcd.setCursor(0,0);                 // seta posição de escrita
  lcd.print(analogRead(A0));          // escreve o que foi lido de A0
  lcd.print("     ");                 //  limpa
  delay(300);                         // Tempo de atualização do LCD
}

Biblioteca LiquidCrystal.h


A biblioteca já inclusa na IDE do Arduino para tratar displays do tipo é a LiquidCrystal. Ela tem algumas funções básicas.

Primeiramente chamamos a biblioteca com a linha #include <LiquidCrystal.h> . Logo após, configuramos os pinos que serão utilizados pelo display: LiquidCrystal lcd(8, 9, 4, 5, 6, 7); . Neste caso, estes pinos se referem, respectivamente, à: (rs, enable, d4, d5, d6, d7). E a palavra lcd é definida pelo usuário como um nome do display, que pode ser qualquer nome. O importante é lembrar que quando formos aplicar qualquer função ao LCD, devemos usar o mesmo nome.

Dentro de setup(), iniciamos o módulo com lcd.begin(16,2), informando que o display tem 16 colunas e 2 linhas. Para escrevermos algo no display, setamos a posição da escrita com lcd.setCursor(0,0), ou seja, coluna 0, linha 0, respectivamente; depois escrevemos com lcd.print("texto para ser impresso"); ou ainda lcd.print(variável);

Outro comando útil é lcd.clear que limpa todo o display.

Para maiores informações sobre os comandos para LiquidCrystal, procure a documentação no site do Arduino.

Com este módulo trabalhando em conjunto com a biblioteca LiquidCrystal, ganhamos tempo e podemos rapidamente obter dados do sistema em que estamos trabalhando.

Espero que tenham gostado. Até o próximo artigo!

Nenhum comentário:

Postar um comentário