quarta-feira, 12 de outubro de 2016

LCD 16x2 no Arduino

LCD 16x2 no Arduino



Apresentarei uma serie de testes básicos para o display 16x2. Este componente é necessário em diversos projetos para orientar o usuário durante a execução das tarefas programadas e aplicados em Arduino, Raspberry Pi, PICs e outros.

Composto por 16 colunas distribuídos em duas linhas, esse display possui 16 pinos, onde 12 são usados para conexões básicas, incluindo os pinos 1 e 2 para alimentação, 15 e 16 para backlight e pino 3 para o contraste.


fonte: próprio autor

Conectando o display

São utilizados 4 pinos do display para conectar no Arduino:
  • pinos digitais 2, 3, 4 e 5 para dados
  • pinos digitais 11 e 12 para controle
No esquema de ligação está sendo usado um potenciômetro de 10 kohm mas esse valor pode ser alterado conforme a necessidade do usuário


fonte: próprio autor

Código fonte 1

Nesse primeiro exemplo de código fonte, é importante observar o uso da biblioteca LiquidCrystal, essa biblioteca é nativa da IDE do Arduino e logo no início do código devem ser declarados quais pinos serão usados para o funcionamento do display e no setup qual o número de coluna e linha vai imprimir minha string.
  
fonte: próprio autor

//Teste de Display LCD 16 x 2
//Autor: Tony Emerson Marim
//===http://mecatronizar.blogspot.com.br===
 
//Bbiblioteca LiquidCrystal
#include <LiquidCrystal.h>
 
//Definição dos pinos que serão utilizados para ligação ao display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
void setup()
{
  //Número de colunas e linhas do LCD
  lcd.begin(16, 2);
}
 
void loop()
{
  //Limpa a tela
  lcd.clear();
  //Posiciona o cursor na coluna 3, linha 0;
  lcd.setCursor(1, 1);
  //Envia o texto entre aspas para o LCD
 lcd.print("MECATRONIZANDO ");
 delay(5000);
}


Nesse código, o display vai exibir uma string declarada pelo comando lcd.print ("texto").

fonte: próprio autor

Código fonte 2

//Teste display LCD 2
//Autor: Tony emerson Marim
//=== http://mecatronizar.blogspot.com.br ===

//Define a utilização da biblioteca para controle de telas LDCs.
 #include "LiquidCrystal.h"
 
//Criando um objeto da classe LiquidCrystal e 
//inicializando com os pinos da interface.
LiquidCrystal lcd(12,11, 5, 4, 3, 2);
 
void setup() {
  //Inicializando o LCD e informando o tamanho de 16 colunas e 2 linhas
  //que é o tamanho do LCD usado neste projeto.
  lcd.begin(16, 2); 
}
 
void loop() { 
  lcd.clear();          //limpa o display do LCD.     
  lcd.print("OLA! ");  //imprime a string no display do LCD.
  delay(2000);                 
   
  lcd.setCursor(0,1);   //posiciona cursor na coluna 0 linha 1 do LCD
  lcd.print("Bem-vindos!"); //imprime a string no display do LCD.
  delay(2000);    
   
  lcd.clear();
  lcd.print("MECATRONIZANDO");
  lcd.setCursor(0,1);
  lcd.print("seu projeto AQUI!");
  delay(4000); 
   
  lcd.clear();
  lcd.print("mecatronizar");
  delay(1000);
   
  //Rolando o display para a esquerda 12 vezes
  for (int i = 0; i < 12; i++) {
    lcd.scrollDisplayLeft();
    delay(600);
  }
   
  delay(1000);
}

No segundo exemplo, o código inserido faz com que algumas strings sejam exibidas na tela do display LCD por um tempo determinado pelo usuário.


fonte: próprio autor

Código fonte 3

//Teste display LCD 3
//Elaboração: Tony Emerson Marim
//=== http://mecatronizar.blogspot.com.br ===  
//  
// Baseado no programa original de Nishant Arora  
   
#include <LiquidCrystal.h>  
   
//Inicializacao do display  
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
   
//Configuracoes LCD 16x2  
int screenWidth = 16;  
int screenHeight = 2;  
   
//String para as 2 linhas 
 
//line1 = Scroll linha superior
String line1 = "http://www.mecatronizar.blogspot.com.br"; 
 
//line2 = Linha inferior - estatica  
String line2 = " MECATRONIZANDO";  
   
// just some reference flags  
int stringStart, stringStop = 0;  
int scrollCursor = screenWidth;  
int tamanho =0;  
   
void setup() 
{  
  //Inicializacao do display  
  lcd.begin(screenWidth,screenHeight);  
}  
   
void loop() 
{  
  lcd.setCursor(scrollCursor, 0);  
  lcd.print(line1.substring(stringStart,stringStop));  
  lcd.setCursor(0, 1);  
  lcd.print(line2);  

  //Quanto menor o valor do delay, mais rapido o scroll  
  delay(250);  
  scroll_sup(); //Chama a rotina que executa o scroll  

  //Verifica o tamanho da string  
  tamanho = line1.length();  
  if (stringStart == tamanho)  
  {  
    stringStart = 0;  
    stringStop = 0;  
  }  
}  
   
void scroll_sup()  
{  
  lcd.clear();  
  if(stringStart == 0 && scrollCursor > 0)
  {  
    scrollCursor--;  
    stringStop++;  
  } else if (stringStart == stringStop){  
    stringStart = stringStop = 0;  
    scrollCursor = screenWidth;  
  } else if (stringStop == line1.length() && scrollCursor == 0) {  
    stringStart++;  
  } else {  
    stringStart++;  
    stringStop++;  
  }  
} 

No código acima uma string fixa fica exibida na linha 2 (inferior) do display, enquanto "rola" na linha 1(superior) uma string em transição da esquerda para a direita, repetidamente.


fonte: próprio autor

Curtiu? Ajude nos a estar cada vez mais empenhado no blog, siga, compartilhe e inscreva-se no canal.

Bons estudos!

Um comentário: