⏰ Aplicação 11 – Agendador com Relógio de Tempo Real (RTC) e LCD 16x2

🎯 Objetivo:

Construir um sistema com relógio em tempo real (RTC) que exibe a hora no display LCD 16x2 e permite executar ações automáticas em horários programados.


📦 Materiais necessários:

  • Arduino Uno

  • Módulo RTC DS1307 ou DS3231

  • Display LCD 16x2 com I2C

  • 1 LED ou buzzer (saída ativada em determinado horário)

  • 1 botão para alterar o horário (opcional)

  • Protoboard e jumpers


🔍 Funcionalidade:

  1. Exibe a hora e data atuais no LCD

  2. A cada segundo, a tela atualiza automaticamente

  3. Em um horário definido no código (por exemplo, 14:30), o LED acende por 10 segundos

  4. Permite agendar ações automáticas com precisão


📘 Biblioteca necessária:

Você precisará da biblioteca RTClib.
Instale via Arduino IDE:
Sketch > Incluir Biblioteca > Gerenciar Bibliotecas > Buscar por "RTClib" > Instalar


✅ Código completo para Arduino:

a imagem sugere atenção especial pois ela bem generica


#include <Wire.h> #include <RTClib.h> #include <Adafruit_LiquidCrystal.h> RTC_DS3231 rtc; Adafruit_LiquidCrystal lcd_1(0); const int pinoSaida = 7; void setup() { lcd_1.begin(16, 2); lcd_1.setBacklight(1); pinMode(pinoSaida, OUTPUT); digitalWrite(pinoSaida, LOW); if (!rtc.begin()) { lcd_1.print("RTC nao detectado"); while (1); } // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Descomente para ajustar lcd_1.clear(); lcd_1.print("Aguardando..."); delay(1000); } void loop() { DateTime agora = rtc.now(); lcd_1.setCursor(0, 0); lcd_1.print("Hora: "); lcd_1.print(agora.hour()); lcd_1.print(":"); if (agora.minute() < 10) lcd_1.print("0"); lcd_1.print(agora.minute()); lcd_1.setCursor(0, 1); lcd_1.print("Data: "); lcd_1.print(agora.day()); lcd_1.print("/"); lcd_1.print(agora.month()); // Acionar alarme às 14:30 (modifique conforme necessidade) if (agora.hour() == 14 && agora.minute() == 30 && agora.second() == 0) { digitalWrite(pinoSaida, HIGH); lcd_1.clear(); lcd_1.print(">>> ATIVADO <<<"); delay(10000); digitalWrite(pinoSaida, LOW); } delay(1000); // Atualiza a cada segundo }

🧠 O que aprendemos aqui:

  • Como usar um módulo RTC para obter hora e data reais

  • Exibir essas informações de forma clara no LCD

  • Programar tarefas automáticas com horário marcado


🛠️ Expansões possíveis:

  • Interface com teclado para ajustar a hora manualmente

  • Vários alarmes ou eventos programados

  • Interface com EEPROM para salvar agendamentos

  • Integração com menus e senha (como nas aplicações anteriores)

Comentários

Postar um comentário

Faça seu comentário referente a este assunto

Postagens mais visitadas deste blog

contador 9999 com pic 16f628

CNC fotos cordenadas x y z dicas

codigo assembler braço mecanico para 5 motores