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.
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!
Obrigado pelo Fórum e Código! Marcos Brasil
ResponderExcluir