Horloge à mots précise : affichage de l'heure en mots à la minute près
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino Nano R3 | 1 |
La liste complète des composants se trouve dans le dépôt du projet.
À propos du projet
L'horloge à mots Arduino avec résolution à la minute en mots et affichage linéaire des secondes.

Il existe également des modes pour l'horloge numérique, l'horloge analogique, la température et l'humidité, ainsi que trois jeux : Jeu de la vie, Simon et Tetris.
L'horloge peut fonctionner en autonomie ou en esclave d'une horloge maîtresse si nécessaire. Sans horloge maîtresse, l'heure est gérée par l'horloge temps réel compensée en température intégrée. Une option PIR ou radar Doppler permet d'éteindre automatiquement l'affichage quand personne n'est dans la pièce.
L'horloge mesure 500 mm × 500 mm (19,68″ × 19,68″), pèse 12 lb (5,5 kg) et est conçue pour être murale. Des pavés tactiles dans chaque coin permettent la configuration et le contrôle.
Étape 1 : À propos des horloges à mots
Les horloges à mots indiquent l'heure à l'aide d'une matrice de mots, chiffres ou lettres. Elles existent depuis des années avec plusieurs niveaux de complexité.

Niveau simple : Utilise des blocs de mots pour indiquer l'heure par pas de 5 minutes (ex: « IL EST CINQ HEURES », « DIX MINUTES »). Environ 20 blocs LED individuels. Simples à construire mais format figé.

Niveau moyen : Matrice 11×10 LED + 4 LED aux coins. 110 LED individuelles permettant d'afficher chiffres et images basiques. Toujours résolution 5 minutes mais avec « VENIR DE PASSER CINQ » ou « PRESQUE DIX » pour affiner. Les 4 LED aux coins indiquent les 4 minutes intermédiaires. Complexité raisonnable, souvent avec bandes LED.

Versions commerciales disponibles. Version murale 450 mm environ 1000 £ avec panneaux avant interchangeables.

Niveau le plus complexe : Matrice 16×16 LED = 256 LED. Résolution à la minute en mots, plus matin/soir/nuit. Température en mots (chaud, froid...). Nombreux modes d'affichage possibles. Construction complexe dû aux nombreuses connexions. PCB avec composants CMS permet corps mince mais coûteux au-delà de 500 mm. Construction manuelle de la matrice nécessite de l'espace ; 500×500 mm est un bon point de départ pour les gros câblages.
Étape 2 : Modifications apportées

Cette horloge mélange le matériel de Wouter Devinck et le logiciel « Catalan » de Pijuana. Aucun PCB personnalisé : seulement modules préfabriqués et 3 petits circuits sur plaque Vero pour l'alimentation.
- Corps principal en 2 feuilles de MDF 14 mm au lieu d'une seule feuille 18 mm.
- Feuille arrière 10 mm plus petite sur 3 côtés (sauf le haut) : l'horloge semble n'avoir que 14 mm d'épaisseur.
- Profondeur réelle 34 mm (joint poussière 2 mm + MDF arrière 14 mm + MDF avant 14 mm + verre 4 mm) vs 21 mm pour Wouter. Mais le recul de la plaque arrière et le verre en retrait de 1,5 mm créent l'illusion de 14 mm.
- Cette profondeur supplémentaire permet matrice LED câblée à la main et modules préfabriqués sans CMS sur les MAX7219.
- Affichage principal câblé directement sur les LEDs sans PCB : toute taille possible.
- Modules capteurs tactiles TTP223 au lieu des Azoteq IQS127D sur carte principale.
- Cartes pilotes MAX7219 utilisent des matrices LED modifiées, livrées avec tous composants.
- Arduino Nano pour sa petite taille.
- Module PIR pour éteindre l'affichage si personne dans la pièce (désactivable).
- Résistance de réglage accessible par le dessous pour calibrer la luminosité automatique.
- Synchronisation avec horloge maîtresse toutes les minutes à 30 secondes. Sinon fonctionne libre avec RTC. Impulsions de sync affichées.
- Logiciel basé sur version « Catalan » de Pijuana, traduit en anglais. Crédits modifiés : version logiciel, mon nom, année de construction.
- Température en mots supprimée, remplacée par statut sync, PIR ON/OFF et affichage linéaire des secondes.
- Mode réglage : appui bouton bas droit remet secondes à 0.
Modifications de la formulation anglaise pour correspondre à ma façon de dire l'heure :
- Mots température supprimés → remplacés par statut sync, PIR ON/OFF, secondes linéaires.
- « MINUTES » → « MINUTE » à 1 minute passée et 1 minute avant l'heure.
- Ajout « A » avant « QUARTER » passé et « QUARTER » avant l'heure.
- Ajout « ELEVEN » manquant de l'horloge Wouter Devinck.
- Midi : « TWELVE OCLOCK IN THE AFTERNOON » (DOZE HEURES DE L'APRÈS-MIDI).
- Minuit : « TWELVE OCLOCK AT NIGHT » (MINUIT). Après minuit : toujours « IN THE MORNING » (DU MATIN).
- « O'CLOCK » → « OCLOCK » sans apostrophe.
Étape 3 : Design du boîtier

Mon boîtier fait 34 mm de profondeur (joint arrière 2 mm + MDF arrière 14 mm + MDF avant 14 mm + verre 4 mm) vs 21 mm pour Wouter (MDF 18 mm + verre 2 mm). Pour paraître moins massif :
- Plaque arrière noire vs blanche → l'œil se concentre sur le mince bord blanc 14 mm.
- Plaque arrière 10 mm plus courte en bas et sur les côtés renforce l'illusion.
- Verre 4 mm coupé 1-2 mm plus court que la plaque avant pour le cacher.


Étape 4 : Contrôles

4 modules TTP223 aux 4 coins de l'affichage (haut gauche, haut droite, bas gauche, bas droite).

Les boutons ont des fonctions différentes selon le mode (voir tableau).
Étape 5 : Réglage automatique été/hiver
Non utilisé.
Étape 6 : Modes d'affichage Horloges & Environnement


4 modes en ordre : horloge à mots, horloge numérique, température/humidité, horloge analogique.

Mode démarrage défilant : numéro version, nom du fabricant, nom de l'horloge.
Étape 7 : Modes d'affichage Jeux
3 jeux classiques codés (code laissé tel quel de l'horloge Catalan).

Jeu de la vie de Conway : Grille infinie 2D de cellules vivantes/mortes. Règles : cellule vivante avec <2 voisines meurt (sous-population) ; 2-3 voisines survit ; >3 meurt (surpopulation) ; cellule morte avec exactement 3 voisines devient vivante (reproduction).

Simon : Jeu de mémoire – reproduisez la séquence générée. Double tapez la dernière entrée pour finir votre tour. Score affiché à l'échec.

Tetris : Jeu de puzzle soviétique (juin 1984). Boutons à améliorer pour contrôler correctement les pièces.
Étape 8 : Prototypage
L'horloge peut être prototypée et testée avec les matrices LED DOT d'origine sur les modules MAX7219.
Note : cette modification temporaire n'est nécessaire que pour tester votre code sur les matrices DOT fournies avec les modules MAX7219.
Cela permet de tester vos modifications logicielles/mise en page en miniature avant la version finale. Le câblage vers la matrice DOT LED devra correspondre aux connexions logicielles.

Modification : plier à 90° les broches suivantes de la matrice LED : broches supérieures vers le haut, inférieures vers le bas. Broches 16, 15, 3, 4, 10, 11. Insérez la matrice dans le socket du PCB d'affichage (ces broches ne seront plus connectées). Soudez des fils de liaison depuis l'arrière du socket vers les broches qui dépassent :
- LEDA → Broche 16 matrice
- LEDB → Broche 15
- LEDG → Broche 3
- LEDF → Broche 4
- LEDE → Broche 10
- LEDC → Broche 11

Test au multimètre. Tableau montrant la correspondance broches logicielles vs broches LED sur la carte d'affichage.

Pour tester vos mises en page : imprimez une version miniature 62×62 mm sur papier blanc.



Noter l'orientation des cartes d'affichage LED pour correspondre à la mise en page logicielle. Rotation conservée comme l'horloge Wouter Devinck originale.

Le petit bouton poussoir sous le capteur temp/humidité teste la synchronisation 30 secondes. Modules tactiles en bas à gauche de la breadboard. Peu de fils visibles car le gros du câblage est dans les matrices. Sur l'horloge finale, câblage manuel vers chaque LED.
Étape 9 : Test des modules modifiés

Sketch modifié pour tester le module MAX7219 après modification câblage. Allume chaque LED de gauche à droite, haut en bas. Connectez 5 fils au Nano et module MAX7219, alimentez le Nano par USB. Chargez le sketch.

Branchez chaque module tour à tour pour vérifier le câblage. Sketch de test téléchargeable : MAX7219_LED_Test.zip
Étape 10 : Correspondance heure → mots

Tableau montrant les correspondances heure → mots. Pas de règles strictes : réglez les mots comme vous diriez l'heure.
Modifications par rapport à l'horloge de Wouter :
- « MINUTES » → « MINUTE » à 1 minute passée et 1 minute avant l'heure.
- Ajout « A » avant « QUARTER » passé et « QUARTER » avant l'heure.
- Midi : « TWELVE OCLOCK IN THE AFTERNOON ».
- Minuit : « TWELVE OCLOCK AT NIGHT ». Après minuit : toujours « IN THE MORNING ».
- Facile à implémenter dans le logiciel.
Fichier téléchargeable : Word+to+Time+Translations.xlsx
Étape 11 : Alimentation

J'utilise une alimentation commune 12 V pour divers circuits, abaissée localement en 5 V par module. Mon alimentation commune a 18 circuits 12 V fusibles individuellement (2 A), dont 9 sur batterie. Cartes d'horloge avec fusible intégré.

Carte d'alimentation sur Vero avec convertisseur MP1584 (12 V → 5 V). Deux cartes de distribution d'alimentation supplémentaires sur Vero (l'une porte le buzzer).

Besoins en énergie : Mesuré : 30 mA luminosité faible, 250 mA pleine luminosité. Variable selon LEDs allumées. Jour ensoleillé : niveau luminosité ~10 (2/3 max). PIR activé réduit fortement la consommation. Minimum 500 mA recommandé. Dépend du type de LEDs.
Étape 12 : Interconnexions des modules

La plupart modules connectés directement au Nano. Modules MAX7219 en chaîne : seul module 01 connecté au Nano, les autres en cascade. Chaque matrice 8×8 connectée à un module MAX7219. Gros du câblage : connexions MAX7219 ↔ matrices LED. Garder distances courtes entre Nano et premier MAX7219, et entre modules MAX7219. Alimenter les deux extrémités de la chaîne MAX7219 (consomment le plus).
Étape 13 : Ordre de construction
Ordre présupposant prototypage et modifications logicielles terminés.

- Faire imprimer le transfert vinyle.
- Faire couper le verre.
- Couper feuilles MDF avant/arrière.
- Percer trous LEDs sur plaque avant.
- Peindre feuilles MDF.
- Percer trous capteurs dans le verre.
- Coller transfert vinyle au dos du verre.
- Percer trous capteurs dans plaque avant MDF.
- Faire logements capteurs dans plaque avant.
- Couper plaque arrière et faire 4 trous d'accès capteurs.
- Ajouter bandes chant mélaminé : blanc plaque avant, noir plaque arrière.
- Visser plaque arrière sur plaque avant.
- Fabriquer plaques Vero : 1 alimentation + 2 distribution.
- Modifier 4 modules MAX7219 et câbler vers LEDs.
- Connecter côté MAX7219 seulement pour l'instant.
- Monter tous modules et plaques Vero au dos de la plaque avant MDF.
- Construire 4 matrices LED sur plaque avant et souder 256 LEDs.
- Câbler tous fils Bat et GND depuis alimentation Vero et distribution.
- Connecter toutes alimentations vers tous modules.
- Connecter tout câblage vers Nano, MAX7219, RTC, capteur temp, capteurs tactiles, buzzer.
- Connecter toutes nappes depuis MAX7219 modifiés vers matrices LED selon tableau câblage.
- Connecter module PIR à distance et sa connexion.
- Connecter sync 30s vers horloge maîtresse (si requis).
- Monter panneau verre avant avec boulons Chicago en fixant capteurs tactiles en même temps.
- Tester.
Tableau 1 : temps de construction approximatifs (varient selon compétences/outils). Ajoutez ~40 h prototypage/programmation.
Étape 14 : Construction – Autocollant vinyle

Design dans Inkscape (logiciel vectoriel gratuit, multiplateforme, standard SVG). Design original de Wouter Devinck téléchargé depuis GitHub, modifié dans Inkscape. Plusieurs versions testées sur prototype miniature avant envoi final.
Important : faire imprimer en miroir (reverse printed) !
Fournisseur : Regal Signs & Graphics – vinyle noir, découpe miroir, lettrage échenillé, ruban d'application, ~27 £ TTC. Livré en tube carton sécurisé. Format EPS depuis Illustrator accepté.
Vinyle livré avec lettres échenillées (gain de temps). Ruban plastique face avant (verre), papier application face arrière. J'ai gardé le papier application comme diffuseur pour les LEDs. Excédent de papier rogné avant pose.

Pose relativement facile. Regarder tutos YouTube « pose vinyle sur verre » avant. Nettoyer verre à l'acétone, sans poussière. Gants plastiques. Pulvériser eau savonnée diluée. Décoller film plastique lentement à angle très aigu pour garder lettres sur papier transfert. Appliquer sur verre humide. Carte de crédit pour chasser bulles depuis centre. Laisser sécher nuit. Découper vinyle sur les 4 trous de fixation au dos.
Fichier Inkscape : Brett11_print_ready.svg
Verre

Verre float 4 mm, 500×500 mm exact, bords polis. Fait par vitrier local ~20 £. Trous 5 mm percés (foret verre 5 mm). Nettoyage acétone, sans poussière. Gants. Eau savonnée. Décoller film lentement. Appliquer. Carte de crédit pour bulles. Sécher nuit. Découper vinyle sur trous fixation dos.
Étape 15 : Construction panneaux principaux partie 1

Panneau principal = 2 feuilles MDF 14 mm. Arrière 10 mm plus petit sur 3 côtés (sauf haut). Bords blanc avant, noir arrière. Vu au mur : 14 mm d'épaisseur apparente.

Original Wouter/Catalan : 1 feuille 18 mm avec fraisage arrière pour PCB. 2 feuilles = découpe scie sauteuse au lieu fraisage long/poussiéreux. Plaque avant 503×503 mm (débord 1,5 mm autour verre = protection).

Plaque arrière découpée scie sauteuse, 14 mm espace composants. PCB le plus profond : MAX7219 (10 mm). À la fin, plaque arrière collée/vissée sur plaque avant.
Construction plaque avant
Plaque avant tient 256 LEDs traversant trous 6,5 mm et contre-dépouilles 18 mm pour éclairer lettres/chiffres individuels.

Repérage : caractères 25 mm d'intervalle, départ 62,5 mm des bords. Lignes tracées sur MDF, intersections = points de perçage.

Bord haut = repère pour rangées. Répété pour colonnes avec bord gauche.

Intersections = centres trous 6 mm (LED) et contre-dépouilles 18 mm (foret 20 mm).


Poinçon automatique (ou clou/vis) sur 256 intersections. Perçage 256 trous 6 mm (guide poinçons). Puis 256 contre-dépouilles 18 mm (foret 20 mm).

Gabarit contre-dépouille : trou dans chute bois pour bague rotative mandrin. Réglage profondeur sur test MDF. Puis 256 perçages en centrant gabarit sur trous 6 mm existants.


Ponçage, apprêt MDF, peinture blanche (réflecteur lumière dans contre-dépouilles). Bord noir extérieur (cache plaque car verre 1 mm plus court). 4 trous 5 mm coins pour boulons Chicago (fixent verre, capteurs tactiles, pads tactiles sur verre). Boulons Chicago : tige 3 mm + caoutchouc pour protéger verre.

Retournez plaque : fraiser logement forstner pour 4 capteurs tactiles (décalé des trous boulons Chicago).
Fixations murales

2 équerres tableau encastrées dans cadre (point haut = niveau cadre). 2 vis à tête fraisée 2″ No6 dans équerres, tension pour comprimer joint poussière.
Étape 16 : Montage capteurs tactiles

Modules TTP223 fixés sur panneau avant via boulons Chicago (qui font office de pads tactiles). Trou 5 mm percé au centre du pad capteur pour passage boulon.

Pad capteur isolé par panneau MDF et rondelle plastique.



Étape 17 : Composants et modules électroniques

Connexions broches ATmega328 (pour prototypage sur Arduino Uno). Broche BST 07 non utilisée. Numéros = numéros Arduino IDE.

LEDs
Achetez vos LEDs chez un bon fournisseur. Elles seront allumées de nombreuses heures/jour. J'ai eu des pannes après quelques semaines.
Mes specs LEDs : 5 mm blanc tête plate, couleur pure constante, angle large ultra brillant. Blanc, 256 pcs, lentille plate ronde, cristal clair, 13000 mcd, tension directe 3,2-3,8 V, courant direct 20 mA (typique), 30 mA max, angle 120°.
Capteur température/humidité DHT22

Capteur numérique bas coût. Humidité capacitive + thermistance. Signal numérique sur broche data. Nouvelle donnée max toutes les 2 s. Branchement : broche gauche 3-5 V, centrale data, droite GND.

Pour ne pas mesurer température interne : boucher ouïes haute/gauche du DHT22 avec ruban (empêche aussi poussière). Côté droit ouvert contre couvercle arrière bas. 2 petits trous bord bas plaque arrière MDF pour circulation air ambiant.
Arduino NANO

Alimentation : Mini-B USB, 6-20 V non régulé (broche 30), ou 5 V régulé (broche 27). Source choisie automatiquement (tension max). Mémoire : ATmega328 32 Ko (2 Ko bootloader), 2 Ko SRAM, 1 Ko EEPROM. 14 broches digitales I/O (5 V, 40 mA max, pull-up 20-50 kΩ). Séries : 0 RX, 1 TX. Interruptions ext : 2, 3. PWM : 3, 5, 6, 9, 10, 11. SPI : 10 SS, 11 MOSI, 12 MISO, 13 SCK. LED intégrée : 13. 8 entrées analogiques 10 bits (0-5 V). I2C : 4 SDA, 5 SCL. Autres : AREF, Reset. Communication : UART TTL sur 0/1, FTDI FT232RL pour USB/port COM virtuel. Librairie SoftwareSerial pour série sur broches digitales. Wire pour I2C, SPI via datasheet ATmega328.
Module capteur tactile TTP223

Boulonné sur panneau avant via boulons verre. Boulon traverse trou 5 mm au centre capteur. Boulon touché pour déclencher mais isolé du capteur par rondelles plastique. 4 modules (1 par coin verre).

LEDs sur modules non requises, retirées (casser) pour économie énergie.
Module RTC DS3231 AT24C32 I2C Precision
Module DS3231 AT24C32 I2C. Livré avec batterie Li-ion rechargeable (voir schéma). J'utilise batterie non rechargeable → résistance R5 retirée du module.

Module afficheur MAX7219


Limitation courant LED MAX7219
Courant max LEDs défini par résistance unique R1 sur module. Valeur selon tableau :

Module livré avec 10 kΩ préinstallé. Remplaçable par résistance adaptée à vos LEDs. Mes LEDs : 3,2-3,8 V @ 20 mA (30 mA max). Pour longue durée : 20 mA. J'ai mis 22 kΩ → ~20 mA à luminosité max. Voir réglage luminosité auto.
Afficheur matrice LED 1088AS

Pour prototypage seulement, non requis projet final. Vue bord bas : broches 1 à 8 gauche à droite.
LDR (photorésistance)

Détecte lumière ambiante. ~500 Ω lumière forte, ~10 MΩ obscurité.

Positionné sous l'horloge sur panneau arrière MDF.

À côté du LDR : trou pour accéder à la résistance de réglage (calibrage luminosité auto).
Liste composants

Étape 18 : Joints poussière
2 joints poussière pour éviter infiltration.

Plaque arrière MDF : joint mousse caoutchouc souple 2 mm auto-adhésif. Sous pression quand horloge accrochée → étanchéité mur/horloge. Posé avec 5 mm marge bord plaque.


Dessus plaque avant : bande caoutchouc auto-amalgamant 5 mm du bord (empêche poussière sous verre). 4 petits carrés caoutchouc autour trous verre (évite fissure serrage boulons Chicago). Trous boulons poinçonnés dans caoutchouc (poinçon cuir).
Étape 19 : Schéma
Connexions Nano :

Fichier taille réelle téléchargeable section hardware.
Connexions MAX7219 :




4 modules MAX7219 et matrices LED connectées. Matrices tournées anti-horaire 90° l'une par rapport à l'autre à partir matrice 01. Matrice 01 entrée : Arduino CLK, DIN, LOAD → sortie vers entrée matrice 02, etc.

Étape 20 : Câblage – Construction matrices LED
Emplacements modules

4 capteurs dans logements panneau principal derrière plaque arrière. Trous dans plaque arrière pour accès boulons Chicago/pads capteurs. 4 modules MAX7219 soudés ensemble, montés centre haut (liaisons données courtes). Nano à gauche MAX7219, RTC à droite. Support batterie RTC encastré dans panneau principal. Plaque Vero alimentation partie basse. 2 plaques distribution haut. Câble 5 V 2 A principal vers les deux plaques distribution → distribution vers autres plaques. Alim MAX7219 depuis plaque gauche, en chaîne chaque plaque, sortie 4ème plaque → alimentées 0 V et 5 V des deux côtés.

Emplacements LEDs : 4 matrices de 64 LEDs étiquetées 1 à 4. Correspondent aux 4 modules MAX7219 montés au-dessus numérotés 1 à 4 gauche→droite. Note : vue arrière donc numéros inversés.

Matrices construites avec 2 types barres bus par module : Cathode 10 mm haut, Anode 2 mm haut. 8 Cathode + 8 Anode par module. 16 goujons panneau 15 mm enfoncés dans plaque aux positions indiquées pour supporter barres Cathode 10 mm.

Goujons 15 mm enfoncés 5 mm (jauge barre métal 10 mm) → 10 mm support. Pins correspondent parties épaisses plaque (pas logement LED face avant). Logement LED face avant invisible depuis l'arrière.

Fil cuivre 0,9 mm soudé sur chaque paire goujons → barres bus Cathode. Noter rotation chaque module et modules inversés (face arrière).

Barres bus Anode (rouge) supportées sur chaque anode LED ~2 mm au-dessus plaque. Pas de goujons nécessaires.

Emplacements barres Cathode & Anode. Chaque LED connectée à une Anode et une Cathode de la matrice.
Étape 21 : Câblage des LEDs

Schéma disposition barres bus avec goujons support Cathode. Ce module : Cathode verticales, Anode horizontales. Séparation verticale 8 mm.


LEDs connectées matrices et MAX7219 depuis l'arrière. Positions inversées et tournées 90° par rapport module suivant → complexe. Tableau ci-dessous : positions LEDs (cases bleues) et positions matrice barres bus (noir autour) vues depuis l'arrière de la plaque avant MDF.

LEDs pliées dans gabarit pour position constante et rapidité. 4 plis par LED (2 par patte) = 1024 plis total ! Patte cathode pliée 90° par rapport anode.

Grilles matrices câblées vers broches correspondantes MAX7219 selon tableau disposition.

16 fils par module. Câble 50 paires 0,5 mm → 14 dernières paires couleurs dupliquées. Module 4 : ordre modifié, Sl/Vi manquant au début mis à la fin.

Tableau 1 : Code couleur câblage matrices LED par module.
Étape 22 : Câblage – Modification modules MAX7219

Avant câblage, modules MAX7219 à modifier.

2 jeux de 8 connecteurs broches 90° à souder sur bord bas connecteur matrice LED existant.

Module MAX7219 modifié avec connecteurs 90° soudés en bas anciens connecteurs matrice. Fils partent vers matrice LED panneau principal selon tableau code couleur.

Vue latérale : broches soudées sur côté anciens connecteurs juste au-dessus PCB. Si module MAX7219 n'a pas composants CMS, connecteurs 90° peuvent nécessiter rognage pour ne pas gêner R1, C1, C2.
Limitation courant LED MAX7219 (rappel)
Courant max LEDs par résistance R1. Tableau valeurs. Module livré 10 kΩ. Remplaçable. Mes LEDs 3,2-3,8 V @ 20 mA. 22 kΩ → ~20 mA pic. Luminosité réelle contrôlée par LDR/logiciel/résistance réglage → bien moins que max.

Réglage niveaux luminosité automatique
L'horloge détecte lumière ambiante et ajuste LEDs.
À l'installation : calibrer sur niveaux max lumière de l'emplacement. Connectez mobile/portable/tablette via câble au port mini USB horloge, ouvrez app surveillance port série. J'utilise Slick USB 2 Serial Terminal sur S7 via câble OTG + USB-mini USB.


Redémarrage horloge, après écran démarrage : données défilent. Surveiller « light reading » et « bright » (ignorer lightReading, constrained lightReading+hyster).
Horloge en place, lumière ambiance max : insérez petit tournevis plat bijoutier dans trou accès à droite capteur lumière. Tournez lentement jusqu'à « light reading = 600 » (ou votre niveau dans brightness.cpp) et « bright = 15 ». Horloge maintenant luminosité max à lumière ambiante max.
Si tournevis trop loin : light reading > 600 mais bright n'augmente pas. Pour horloge plus sombre sur toute plage : régler light reading < 600 à lumière max.
Note : bright=15 = courant max vers LEDs. Courant max défini par R1 (RSET) sur module MAX7219 → choisir selon vos LEDs.
Étape 23 : Câblage port Mini USB

Pour réglage/vérification niveaux lumière et programmation : prise Mini USB découpée côté droit plaque arrière MDF. Câble rallonge Mini USB M/F 25 cm angle droit 90°, gaine et blindage retirés pour exposer fils → permet courbes angles vifs espaces étroits boîtier.
Étape 24 : Extinction affichage pilotée PIR
Optionnel : module radar Doppler peut remplacer (voir section suivante).
PIR activé via menu horloge à mots (bas gauche PIR On, bas droite PIR Off) → allume affichage si mouvement détecté. Sans mouvement : affichage s'éteint après délai. PIR activé → « PIR ON » affiché. Désactivé (affichage toujours allumé) → « PIR OFF ». Par défaut PIR off = affichage toujours allumé.
Module PIR monté à distance dans boîte interrupteur chrome modifiée. Boîte encastrée cloison plâtre, contient aussi interrupteur marche/arrêt horloge. Module très petit, boîtier minuscule possible si discret. Ne traverse pas verre → si montage sur horloge, percer trou verre (facile gros foret).

Plaque interrupteur chrome neutre + boîte encastrée pour interrupteur alimentation et module PIR.

2 trous percés plaque neutre : interrupteur alimentation et lentille PIR. Poinçonnage, pré-perçage, perçage final pour fraise à escalier. Trou lentille PIR juste assez grand pour ajustement par friction.


12 V + sur interrupteur, 0 V sur vis terre. 12 V retour vers alim horloge Vero depuis autre côté interrupteur et vis terre. 5 V depuis alim horloge Vero vers module PIR. 5 V et fil capteur PIR vers horloge terminés sur connecteurs header PCB branchés sur pins header module PIR. Câble sync sur pins header → connecté câble sync 30s horloge maîtresse via socket header unique.

PIR : 2 résistances réglage sensibilité et durée activation PIR/affichage.
Contrôle PIR On/Off : mode horloge à mots, toucher capteur bas gauche = PIR On, bas droite = PIR Off. PIR Off = affichage permanent. Changement réglage → « PIR ON » ou « PIR OFF » affiché 5 s. Au démarrage : défaut PIR off. Si activation immédiate → affichage s'éteint (PIR ~1 min initialisation avant détection). Photos 6 & 7 : « PIR ON »/« PIR OFF » 5 s.
Étape 25 : Option radar Doppler
Module radar Doppler optionnel à la place du PIR.

Radar Doppler activé via menu horloge à mots (bas gauche PIR On, bas droite PIR Off) → allume affichage si mouvement détecté. Vérification mouvement chaque quart d'heure. Sans mouvement : affichage s'éteint jusqu'à nouvelle détection. Affichage « PIR ON »/« PIR OFF » comme PIR. PIR off = affichage toujours allumé. Contrairement au PIR, radar Doppler traverse verre et plastique → fixé dans boîtier derrière verre et autocollant PVC. Portée ~5 m (16'5″).

Module radar fixé à l'intérieur. Trou percé panneau avant pour capteur micro-ondes.


Module caché derrière autocollant PVC et verre.
Étape 26 : Contrôle On/Off PIR/Radar Doppler
PIL/Radar On/Off : mode horloge à mots, toucher capteur bas gauche = On, bas droite = Off. Off = affichage permanent. Changement → « PIR ON » ou « PIR OFF » 5 s. Démarrage : défaut Off. Si activation immédiate → affichage s'éteint (initialisation ~1 min).


Étape 27 : Réglage luminosité automatique (rappel)

Même procédure étape 22. Connectez appareil via mini USB, surveillez port série. Lumière max : tournevis dans trou accès à droite capteur → light reading = 600, bright = 15. Si light reading > 600 mais bright bloqué 15. Pour plus sombre : light reading < 600 à lumière max. bright=15 = courant max (défini par R1 sur MAX7219 selon vos LEDs).

Étape 28 : Réglage de l'horloge
Réglage en mode horloge numérique : toucher capteur bas gauche.

Chiffres heures clignotent 2×/s = mode réglage heure. Fonctions capteurs :
- Haut droite : incrémente heures ou minutes
- Haut gauche : décrémente heures ou minutes
- Bas gauche 1er appui : entre mode réglage, sélectionne heures
- Bas gauche 2e appui : sélectionne minutes
- Bas gauche 3e appui : quitte mode réglage, valide heure
- Bas droite : remet secondes à 00
Étape 29 : Synchronisation
Si câble sync 30s horloge maîtresse connecté : horloge saute à 30s hors mode réglage. Sinon : retombe sur RTC compensée température (quartz très précis). Remettre secondes ~en phase (±10 s) et attendre sync hors mode réglage.

Animation : horloge à mots en avance de plusieurs secondes. Impulsion sync maîtresse chaque 30s (minute et demi-minute) → synchronise sur 30s. Impulsion 0s ignorée. Sync seulement si horloge entre 20s passée et 20s avant minute. Normalement correction fraction de seconde → « SYNC » apparaît sans correction visible secondes. Impulsion reçue chaque 30s mais 0s ignorée.
Étape 30 : Logiciel et modifications
Logiciel téléchargeable onglet logiciel. Modules :
Fichiers programme :
Brett_wordclock_v4_3.ino: programme principal, mise à jour code raccourci -10% taille. Merci srdevil pour mise à jour affichage secondes.brightness.cpp/.h: luminosité autocharacter.cpp/.h: définitions caractères (chiffres)credits.cpp/.h: crédits findisplay.cpp/.h: affichage & fonctions LEDlife.cpp/.h: Jeu de la vieserial.cpp/.h: menu port sériesimon.cpp/.h: Simontemphum.cpp/.h: affichage temp/humiditétetris.cpp/.h: Tetristime.cpp/.h: horloge mots, horloge numériquetimeanalog.cpp/.h: horloge analogiquetouchbuttons.cpp/.h: boutons tactiles, changement mode
Bibliothèques tierces :
Chronodot.cpp/.h: bibliothèque Chronodot (DS3231)DHT.cpp/.h: bibliothèque capteur température (DHT22)LedControl.cpp/.h: bibliothèque LedControl (MAX7219)stc.cpp/.h/platform.h: bibliothèque Simple Tetris Clonepitches.h: fréquences notes (site Arduino)
Pour modifications : comparez mon code au « Code Catalan » pour comprendre changements nécessaires. J'ai marqué //Brett mes modifications.
Modifier le code : Si comme moi vous n'êtes pas expert codage, expérimentez pour comprendre. Je sauvegarde version différente à chaque micro-changement → retour arrière possible. Gardez affichage numéro version (module credit.h ~ligne 47) pour savoir quelle version testée.
Trop long d'expliquer tout le code, mais guide bref pour changer mots et quand ils s'affichent :
Les MOTS sont définis dans time.h

Ligne 52 : const byte w_the[3] PROGMEM = { 0, 0, 3 };
Mot « THE » décrit par position LEDs dans accolades { 0, 0, 3 }. Matrice LEDs commence coin haut gauche, index 0. { 0, 0, 3 } = 1ère LED horizontalement, 3 LEDs allumées dont celle-ci. Lettres THE à cette position = mot affiché.
Mot « TIME » : 4 LEDs à { 0, 4, 4 } (ligne 0, 5ème LED, 4 LEDs – compter depuis 0).
Descendez dans le fichier pour positions tous mots.
Contrôler quand mots s'allument

Dans module time.cpp. Liste règles : quels mots allumer à quelles heures.
Image : partie code à partir ligne 695. Minuit (00:00) → « THE TIME IS TWELVE OCLOCK AT NIGHT ». « THE TIME IS » toujours affiché depuis ligne 687. Ajouter règles : si minutes=0, si heures=0 → afficher mot heures « TWELVE », mot « OCLOCK », mot « AT », mot « NIGHT ». En descendant, toutes combinaisons horaires couvertes.
Modification code horloge analogique – augmentation résolution temporelle
Commentaire srdevil avec modifications code. Non testé mais inclus si vous voulez essayer. « Si 18:00, grande aiguille haut, petite bas. Mais 18:59, petite toujours totalement bas → ressemble 17:59. Mon frère a modifié : si >HH:15 petite aiguille bouge déjà vers chiffre suivant. Résolution augmentée partie >HH:15. Code section commentaires ou ici.
Processus de fabrication
- L'Horloge à Coucou : Histoire, Artisanat et Évolution Moderne
- Impression 3D silicone : la prochaine frontière de la fabrication additive
- Mesurer des capteurs analogiques sur Raspberry Pi avec une seule broche GPIO
- Construire une horloge Numitron rétro avec Arduino : simple, fiable et économe en énergie
- Python timeit() : mesurer le temps d'exécution avec exemples pratiques
- Horloge à Mots DIY Arduino – Afficheur Temps Réel Élégant et Personnalisable
- Horloge Arduino temps réel pour les heures de prière islamiques
- Éliminer les goulots d'étranglement de production : 5 outils éprouvés pour l'efficience manufacturière
- Construire un Réveil Fiable avec RTC DS1302 et Arduino UNO