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.
On va maintenant le matériel nécessaire pour le projet :
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.
#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);
}
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
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.
Voici la simulation du projet :