jacknpoe

relógio no LCD

Dec 4th, 2025 (edited)
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 1.83 KB | Software | 0 0
  1. #include <LiquidCrystal_I2C.h>
  2. #include <RtcDS1302.h>
  3.  
  4. // pinos do relógio
  5. #define pinoRST 9 //Pino RST
  6. #define pinoDATA 10 //Pino DAT
  7. #define pinoCLOCK 11 //Pino CLK
  8.  
  9. // VCC = 5V, GND = GND, RST = 9, DATA = 10, CLOCK = 11
  10. ThreeWire pinos( pinoDATA, pinoCLOCK, pinoRST);  // estrutura dos pinos do relógio
  11. RtcDS1302<ThreeWire> RTC( pinos);  // objeto do relógio
  12. LiquidCrystal_I2C LCD = LiquidCrystal_I2C( 0x27, 16, 2);  // objeto do Cristal Líquido 16x2 I2C
  13.  
  14. void setup() {
  15.   RTC.Begin();  // inicia relógio
  16.   RTC.SetIsWriteProtected( false);  // para poder alterar o relógio
  17.   RTC.SetIsRunning( true);  // coloca o relógio para "correr"
  18.   RtcDateTime tempo = RtcDateTime( __DATE__, __TIME__);  // pega a data e a hora do compilador
  19.   RTC.SetDateTime( tempo);  // e coloca no relógio
  20.  
  21.   LCD.init();  // inicia o Cristal Líquido
  22.   LCD.backlight();  //liga a luz de fundo
  23. }
  24.  
  25. void loop() {
  26.   RtcDateTime agora = RTC.GetDateTime();  // pega o tempo de agora
  27.  
  28.   // pega DD/MM/AAAA
  29.   String dia = (( agora.Day() < 10) ? "0" : "") + String( agora.Day());
  30.   String mes = (( agora.Month() < 10) ? "0" : "") + String( agora.Month());
  31.   String ano = (( agora.Year() < 10) ? "0" : "") + String( agora.Year());
  32.  
  33.   // pega HH:MM:SS
  34.   String hora = (( agora.Hour() < 10) ? "0" : "") + String( agora.Hour());
  35.   String minuto = (( agora.Minute() < 10) ? "0" : "") + String( agora.Minute());
  36.   String segundo = (( agora.Second() < 10) ? "0" : "") + String( agora.Second());
  37.  
  38.   // mostra a data
  39.   LCD.setCursor(0, 0);
  40.   LCD.print("Data: " + dia + "/" + mes + "/" + ano);
  41.  
  42.   // mostra a hora
  43.   LCD.setCursor(1, 1);
  44.   LCD.print("Hora: " + hora + ":" + minuto + ":" + segundo);
  45.  
  46.   // um delay que é um compromisso entre exatidão e processamento
  47.   delay( 200);
  48.  
  49.   // não tem clear() no LCD porque não é necessário e iria fazer piscar
  50. }
Advertisement
Add Comment
Please, Sign In to add comment