#include <Wire.h> // Biblioteca do I2C
#include <LiquidCrystal_I2C.h>
// Criando projeto lcd com o endereço 0x27 e tamanho 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Define um caractere especial (barra de progresso)
byte progressBar[8] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111
};
void setup() {
// Inicializa o LCD
lcd.init();
lcd.backlight();
Serial.begin(115200);
// Cria o caractere especial
lcd.createChar(0, progressBar);
lcd.setCursor(2, 0);
lcd.print("Iniciando...");
delay(2000); // Aguarde para iniciar
lcd.clear();
}
void loop() {
// Mensagem dinâmica no LCD
lcd.setCursor(0, 0);
lcd.print("Contador: ");
// Calcula o tempo em segundos desde o início do programa
int seconds = millis() / 1000;
lcd.setCursor(10, 0);
lcd.print(seconds);
// Animação de carregamento
lcd.setCursor(0, 1);
lcd.print("Progresso: ");
for (int i = 0; i < 16; i++) {
lcd.setCursor(i, 1);
lcd.write((byte)0); // Escreve o caractere de barra de progresso
delay(150); // Animação suave
}
// Exibe uma mensagem após o carregamento
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Carregado!");
delay(3000); // Mostra a mensagem por 3 segundos
lcd.clear(); // Limpa o display para reiniciar
}