Afficher l’heure sur HW-069 avec une horloge DS3231 et un arduino
Description :
Projet permettant d’afficher l’heure en temps réel sur le module LCD HW-069 à l’aide d’une horloge RTC DS3231 et d’un Arduino.
Le DS3231 fournit une mesure précise de l’heure et de la date, que l’Arduino lit périodiquement pour mettre à jour l’affichage sur le LCD. Le HW-069 offre un écran lisible et compact, idéal pour visualiser clairement l’heure, les minutes et éventuellement la date.
Ce montage est parfait pour créer une horloge numérique, une station horaire, ou tout projet nécessitant un suivi temporel fiable, tout en illustrant l’utilisation combinée d’un module RTC et d’un écran LCD piloté par Arduino.
Prérequis :
- 1 x Carte Arduino Uno
- 1 x HW-069
- 1 x RTC DS3231 I2C
- 1 x Breadboard
- Fils de connexion
Version IDE :
- Arduino IDE 2.3.5
Bibliothèque :
- RTClib.h (version: 2.1.4 par Adafruit)
- Adafruit BusIO (version: 1.17.2 par Adafruit)
- TM1637Display.h (version: 1.2.0 par Avishay Orpaz)
Vidéo de démonstration :
Schéma de câblage :


Code :
// Inclure la bibliothèque
#include "RTClib.h"
RTC_DS3231 rtc;
// Inclure la bibliothèque
#include <TM1637Display.h>
// Définir les broches de connexion HW-069
#define CLK 3
#define DIO 4
// Créer un objet d'affichage de type TM1637Display
TM1637Display display = TM1637Display(CLK, DIO);
char msg[20];
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1) delay(10);
}
// Cette ligne définit l'horloge temps réel avec une date et une heure explicites.
// Par exemple, pour définir le 21 janvier 2014 à 3 heures du matin, vous appelleriez :
//rtc.adjust(DateTime(2014, 1, 21, 10, 42, 0));
// Réglez la luminosité sur 5 (0=le plus sombre 7=le plus brillant)
display.setBrightness(5);
}
void loop() {
DateTime now = rtc.now();
int valeurtime = now.minute()+(now.hour()*100);
display.showNumberDecEx(valeurtime, 0b01000000, true);
delay(800);
display.showNumberDecEx(valeurtime, 0b00000000, true);
delay(200);
sprintf(msg, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
Serial.println(msg);
}
