Dans ce projet on va voir comment afficher l’heure et la date sur un écran LCD. Ce projet peut vous être très utile pour faire un réveil ou juste une horloge. Il vous suffira juste d’ajouter des piles à la carte Arduino et d’imprimer un boitier à l’imprimante 3d pour avoir une vraie horloge autonome.

Difficulté :

Matériel nécessaire

On va maintenant le matériel nécessaire pour le projet :

  • Une carte Arduino Uno
  • Un Ecran LCD 16×2 à Liquide Crystal
  • Un potentiomètre
  • Une résistance 220 ohms
  • Fils de liaisons (une quinzaine environ !)

Schéma du projet

A quoi sert le potentiomètre ?

Le potentiomètre permet de régler la luminosité de l’écran. Vous pouvez vous en passer en branchant directement du 5V sur le fil marron et le GND qui va du potentiomètre à l’écran vous pouvez le relier directement sur la carte Arduino.

Programme du projet

#include <LiquidCrystal.h> // Librairie pour Ecran LCD

int heure_date[6] = {10,34,18,18,10,2022}; //seconde minute heure jour mois année
int mod[6] = {60,60,24,31,12,3000}; // limite d incrementation
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // On initialise la librairie avec les pins ou l'ecran est branche

void setup() {
  lcd.begin(16, 2); // On initialise l'ecran avec sa taille
}

void loop() {
  heure_date[0]++;//incrementation du temps
    for (int i = 0; i < 6 ; i++){
      if (heure_date[i] == mod[i]) { // verification du dépassement de limite
        if (i<5) {heure_date[i+1] ++;}
        heure_date[i] = 0;
      }
    }
    lcd.setCursor(0,0); //On place le curseur sur la première ligne
    for (int j = 3; j < 5; j++) { //affichage de la date
      if (heure_date[j]<10){
        lcd.print("0");
        lcd.print(heure_date[j]);
      }
        else {lcd.print(heure_date[j]);}
      lcd.print("/");    
    }
    lcd.print(heure_date[5]); 
    lcd.setCursor(0,1); //On place le curseur sur la deuxième ligne
    for (int j = 2; j >= 0; j--) { //affichage de l'heure 
      if (heure_date[j]<10)
      {
        lcd.print ("0");
        lcd.print(heure_date[j]);
      }else {lcd.print(heure_date[j]);}
      if (j != 0){
        lcd.print(":"); 
      }   
    }
    delay(250);
}
 

Modifier l'heure et la date dans le programme !

Comme vous avez pu le voir sur l’image, l’heure et la date de départ est fixe et n’est pas forcément au bon jour. Vous pouvez donc changer par vous-même cette date dans le programme.

Voici la ligne à modifier :

int heure_date[6] = {10,34,18,18,10,2022}; //seconde minute heure jour mois année

Comment conserver l'heure actuelle quand l'Arduino est éteint ?

Comme vous avez pu voir, l’horloge et la date ne continue pas de se mettre à jour une fois la carte Arduino éteinte. Ceci peut être embêtant si vous faites une horloge par exemple. Pour régler ce souci, vous pouvez ajouter au projet un module horloge rtc (comme le DS3231) qui va calculer le temps même lorsque la carte Arduino est éteinte grâce à une pile indépendant de l’alimentation de la carte Arduino.

 

Simulation du projet

Voici la simulation du projet :