Neste projeto, veremos como exibir a hora e a data em uma tela LCD. Esse projeto pode ser muito útil para criar um despertador ou apenas um relógio. Tudo o que você precisa fazer é adicionar baterias à placa Arduino e imprimir uma caixa usando a impressora 3D para ter um relógio autônomo de verdade.

Dificuldade :

Materiais necessários

Agora, veremos o hardware necessário para o projeto:

  • Placa Arduino Uno
  • Uma tela LCD de cristal líquido 16×2
  • Um potenciômetro
  • Um resistor de 220 ohm
  • Fios de conexão (cerca de quinze!)

Diagrama do relógio do Arduino

Schéma horloge Arduino

Qual é a finalidade do potenciômetro?

O potenciômetro é usado para ajustar o brilho da tela. Você pode dispensá-lo conectando 5 V diretamente ao fio marrom e o GND que vai do potenciômetro à tela pode ser conectado diretamente à placa Arduino.

Programa

#include <LiquidCrystal.h> // Library for LCD Screen

int time_date[6] = {10, 34, 18, 18, 10, 2022}; //second minute hour day month year
int limits[6] = {60, 60, 24, 31, 12, 3000}; // increment limits
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Initialize the library with the connected pins

void setup() {
  lcd.begin(16, 2); // Initialize the LCD with its dimensions
}

void loop() {
  time_date[0]++; // time increment
    for (int i = 0; i < 6 ; i++){
      if (time_date[i] == limits[i]) { // check limit overflow
        if (i<5) {time_date[i+1]++;}
        time_date[i] = 0;
      }
    }
    lcd.setCursor(0,0); // Position cursor on first line
    for (int j = 3; j < 5; j++) { // display date
      if (time_date[j]<10){
        lcd.print("0");
        lcd.print(time_date[j]);
      }
        else {lcd.print(time_date[j]);}
      lcd.print("/");    
    }
    lcd.print(time_date[5]); 
    lcd.setCursor(0,1); // Position cursor on second line
    for (int j = 2; j >= 0; j--) { // display time
      if (time_date[j]<10)
      {
        lcd.print("0");
        lcd.print(time_date[j]);
      }else {lcd.print(time_date[j]);}
      if (j != 0){
        lcd.print(":"); 
      }   
    }
    delay(250);
}

Altere a hora e a data no programa!

Como você pode ver na imagem, a data e a hora de início são fixas e não necessariamente no dia certo. Portanto, você mesmo pode alterar essa data no programa.

Aqui está a linha a ser alterada:

int time_date[6] = {10, 34, 18, 18, 10, 2022}; //second, minute, hour, day, month, year

Como posso manter a hora atual quando o Arduino está desligado?

Como você pode ver, o relógio e a data não continuam a ser atualizados depois que a placa Arduino é desligada. Isso pode ser irritante se você estiver fazendo um relógio, por exemplo. Para resolver esse problema, você pode adicionar um módulo de relógio rtc ao projeto (como o DS3231), que calculará a hora mesmo quando a placa Arduino for desligada, graças a uma bateria que é independente da fonte de alimentação da placa Arduino.

Simulação