Introdução
Bem-vindo a mais um tutorial Velxio! Hoje vamos construir um clássico projeto Hello World usando um display LCD 20x4 e um Arduino Uno. Este é um projeto perfeito para iniciantes que desejam aprender como interfacear LCDs de caracteres com microcontroladores. Usaremos a popular biblioteca LiquidCrystal, que torna o controle do display muito fácil.
Ao final deste post, você será capaz de conectar um LCD 20x4, escrever código para exibir texto em várias linhas e até mostrar dados dinâmicos como tempo de atividade. Vamos mergulhar!
Passo a Passo do Circuito

Nosso circuito consiste em dois componentes principais: um Arduino Uno e um LCD 20x4 (modelo wokwi-lcd2004). O LCD tem 16 pinos, mas precisamos apenas de 6 deles para dados e controle. Aqui está a fiação:
- RS (Seleção de Registrador) – conectado ao pino 12 do Arduino (fio verde)
- E (Habilitar) – conectado ao pino 11 do Arduino (fio verde)
- D4 – conectado ao pino 5 do Arduino (fio azul)
- D5 – conectado ao pino 4 do Arduino (fio azul)
- D6 – conectado ao pino 3 do Arduino (fio azul)
- D7 – conectado ao pino 2 do Arduino (fio azul)
Estamos usando o modo de 4 bits, que requer apenas quatro linhas de dados (D4–D7) em vez de oito. Isso economiza pinos de E/S preciosos. O LCD também precisa de alimentação (5V) e terra, mas no Velxio essas conexões são feitas automaticamente quando você coloca os componentes.
Para montar este circuito no Velxio:
- Abra o exemplo LCD Hello World ou inicie um novo projeto.
- Use o seletor de componentes para adicionar um Arduino Uno e um LCD 20x4.

- Clique nos pinos e arraste os fios para corresponder às conexões acima. Você pode alterar as cores dos fios clicando na amostra de cor.
- Sua tela deve ficar como o diagrama do circuito acima.
Passo a Passo do Código

Agora vamos ver o código. Abra o editor de código no Velxio (você verá o editor Monaco com realce de sintaxe). Aqui está o sketch completo:
// LiquidCrystal Library - Hello World
// Demonstrates the use a 20x4 LCD display
#include <LiquidCrystal.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(20, 4);
// Print a message to the LCD.
lcd.print("Hello, Arduino!");
lcd.setCursor(0, 1);
lcd.print("Velxio Emulator");
lcd.setCursor(0, 2);
lcd.print("LCD 2004 Test");
}
void loop() {
// set the cursor to column 0, line 3
lcd.setCursor(0, 3);
// print the number of seconds since reset:
lcd.print("Uptime: ");
lcd.print(millis() / 1000);
}
Como funciona
- Inclua a biblioteca:
#include <LiquidCrystal.h>nos dá acesso a todas as funções do LCD. - Defina os pinos: Criamos constantes para os números dos pinos:
rs = 12,en = 11,d4 = 5,d5 = 4,d6 = 3,d7 = 2. Eles correspondem à nossa fiação. - Crie o objeto LCD:
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);informa à biblioteca quais pinos estão conectados. - Em
setup():lcd.begin(20, 4);inicializa o display com 20 colunas e 4 linhas.lcd.print()escreve texto na posição atual do cursor.lcd.setCursor(col, linha)move o cursor para uma posição específica (baseada em 0).
- Em
loop():- Movemos o cursor para a linha 3, coluna 0.
- Imprimimos “Uptime: ” seguido de
millis() / 1000(segundos desde o reset).
Para executar o código, clique no botão Compilar na barra de ferramentas e depois em Executar.

Conceitos Principais
- Modo de 4 bits vs 8 bits: Usar apenas 4 linhas de dados (D4–D7) economiza pinos. A biblioteca LiquidCrystal lida com o protocolo.
- Posicionamento do cursor:
setCursor(col, linha)– lembre-se de que linhas e colunas começam em 0. millis(): Retorna milissegundos desde que o programa iniciou. Dividir por 1000 dá os segundos.- Gerenciamento de bibliotecas: O Velxio inclui a biblioteca LiquidCrystal por padrão. Você pode adicionar mais bibliotecas através do Gerenciador de Bibliotecas.

Armadilhas Comuns e Dicas de Depuração
- Erros de fiação: Verifique novamente se cada fio conecta os pinos corretos. Trocar D4 e D5 causará caracteres distorcidos.
- Dimensões erradas no
begin(): Se você usarlcd.begin(16, 2)com um display 20x4, o texto pode aparecer truncado ou desalinhado. - Biblioteca ausente: Se você receber um erro de compilação sobre
LiquidCrystal.h, certifique-se de que a biblioteca está instalada (deve estar por padrão). - Cursor não visível: O cursor é invisível por padrão. Use
lcd.cursor()para mostrar um cursor sublinhado. - Texto não atualizando: No loop, pode ser necessário limpar a linha antes de imprimir novos dados. Use
lcd.setCursor(0, 3); lcd.print(" ");para limpar a linha.
Extensões Sugeridas
Depois que o Hello World básico estiver funcionando, tente estas melhorias:
- Texto rolante: Use
lcd.scrollDisplayLeft()oulcd.scrollDisplayRight()para criar mensagens que rolam. - Exibir dados de sensores: Leia um sensor analógico (ex.: potenciômetro) e exiba seu valor no LCD.
- Caracteres personalizados: Crie seus próprios símbolos usando
lcd.createChar(). - Entrada por botão: Adicione um botão para alterar a mensagem exibida.
- Múltiplas telas: Use uma máquina de estados para alternar entre diferentes páginas de informação.
Experimente Você Mesmo!
Pronto para construir seu próprio projeto com LCD? Abra o exemplo LCD Hello World no Velxio e comece a experimentar. Você pode modificar o código, alterar a fiação ou adicionar novos componentes – tudo no seu navegador, sem necessidade de hardware.
Feliz criação!