Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Construire une horloge 7 segments précise avec Arduino Pro Mini et DS1302 RTC

Composants et fournitures

ComposantQuantitéNotes
Arduino Pro Mini 328 – 5V/16 MHz (SparkFun)1
Module RTC DS1302 (acheter module complet et dessouder le support IC et le quartz)1
Pile CR1220 + support (ex: « 5pcs Black Housing CR1220 CR1225 Button Cell Battery Socket Holder BS-1220-1 »)1
Condensateur CMS 0,1 µF 12061
Condensateur CMS céramique 10 µF 12061
Bouton poussoir tactile 12 mm (avec capuchon)4
Convertisseur DC‑DC step-down 3A mini1
Afficheur 7 segments 4 digits 0,28″ cathode commune36
MAX7219 DIP18
Buzzer1
Connecteurs mâle/femelle usinés (strips de 40, il faut 8 strips de chaque)1 lot
Prise d'alimentation DC (12 V, jack 5,5 × 2,1 mm)1

Outils et machines nécessaires

Applications et services en ligne

À propos de ce projet

En parcourant Hackaday.io, j'ai découvert une superbe horloge à matrice d'afficheurs 7 segments réalisée par Frugha. Je voulais la reproduire, mais sa version est imposante car elle utilise des afficheurs 0,56″. Mon design utilise des afficheurs 0,28″, ce qui réduit la taille au quart.

Le logiciel a été réécrit pour intégrer une fonction alarme et un écran de configuration permettant de régler l'heure, la date, l'alarme, la mélodie, la luminosité et le format de date.

Écran de configuration

L'horloge est pilotée par quatre boutons. Le bouton SELECT (le plus haut) affiche l'écran de configuration. La sélection courante clignote. Appuyer à nouveau sur SELECT fait défiler les sections : Heure, Date, Alarme, Mélodie, Luminosité, Format date, Horloge.

Le bouton ENTER (le deuxième) permet de modifier le réglage sélectionné. S'il y a plusieurs paramètres pour une section, ENTER passe de l'un à l'autre. Le paramètre actif clignote. Les boutons UP et DOWN (les deux du bas) modifient la valeur quand elle clignote.

Écran date

Appuyer sur ENTER en mode horloge affiche la date pendant 5 secondes. La section « Format date » de la configuration permet de choisir le format (JJ‑MM ou MM‑JJ) et la police (carrée ou standard).

Considérations de conception

Pour simplifier le routage du PCB, j'utilise des afficheurs 4 digits au lieu de digits individuels. Comme les afficheurs 0,28″ sont petits, les MAX7219 sont placés sur une carte séparée. Pour simplifier le câblage, des connecteurs mâle/femelle usinés relient les cartes. Les fichiers Eagle sont fournis pour fabrication professionnelle ou DIY (méthode au toner).

Cartes « colonnes » (6 nécessaires)

Chaque carte colonne porte 6 afficheurs 4 digits. Pour souder les connecteurs mâles, commencez par le milieu et progressez vers l'extérieur. Utilisez un cure‑dent ou similaire pour soulever légèrement le connecteur afin de souder facilement. Fer fin, soudure 0,5 mm.

Après assemblage, peignez le contour des afficheurs en noir mat pour masquer les espaces blancs si l'alignement n'est pas parfait. Numérotez chaque module colonne au feutre pour faciliter leur réinsertion dans la carte mère MAX7219.

Carte mère MAX7219

Le routage PCB ne mappe pas les segments/digits du MAX7219 aux broches correspondantes des afficheurs ; le layout a été simplifié et les différences sont gérées par logiciel. Pour les connecteurs femelles, placez‑les d'abord sur les mâles des cartes colonnes, puis soudez l'ensemble. Ainsi les broches s'alignent parfaitement. Les numéros sur les modules colonnes garantissent leur remise en place correcte.

Carte MPU (microprocesseur)

Cette carte regroupe tous les autres composants. Les 4 boutons et les 2 condensateurs CMS sont au dos ; le reste en face avant. Pour un profil bas, le connecteur FTDI de l'Arduino Pro Mini est soudé directement sur le PCB. Deux fils relient DTR et VCC au PCB.

Fabrication du boîtier

Les fichiers STL (face avant et arrière) sont fournis. Impression à 0,2 mm de hauteur de couche avec brim. La face avant nécessite des supports (touchant le plateau seulement). La carte mère MAX7219 avec ses modules colonnes s'insère par l'avant ; ajoutez une ou deux couches de ruban adhésif si c'est trop lâche. La carte MPU est collée à chaud à l'arrière.

Logiciel

La bibliothèque MD_MAX72XX doit être installée dans l'IDE Arduino. Le sketch Hardware_Test_V1 allume tous les segments pour vérifier les courts‑circuits ou câblages défectueux. Une fois l'affichage validé, téléversez Clock_V4.

Code principal (Clock_V4.ino – extraits clés)

// Horloge à matrice 7 segments
// Basée sur le projet de Frugha (https://hackaday.io/project/169632)
// Modifications par John Bradnam (jbrad2089@gmail.com) :
// - Afficheurs 0,28″
// - Ordre MAX7219, digits, segments modifié pour simplifier le PCB
// - Hardware : Arduino Mini Pro, DS1302 RTC, 4 boutons
// - Alarme avec mélodies sélectionnables
// - Réglage luminosité
// - Écran de configuration (heure, date, alarme, mélodie, luminosité)
// - Écran date (2 s → 5 s)
// - Option format date (JJ-MM / MM-JJ) et police date

#include <MD_MAX72xx.h>
#include <SPI.h>
#include <TimeLib.h>
#include <DS1302RTC.h>
#include <EEPROM.h>
#include "button.h"
#include "Tunes.h"
#include "Digits.h"

#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
#define MAX_DEVICES 18
#define LED_CLK 13
#define LED_DATA 11
#define LED_CS 10
#define SPEAKER 2
#define SW_UP 3
#define SW_DOWN 4
#define RTC_CLK 5
#define RTC_IO 6
#define SW_ENTER 7
#define RTC_CE 8
#define SW_SELECT 9

DS1302RTC rtc(RTC_CE, RTC_IO, RTC_CLK);
MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, LED_CS, MAX_DEVICES);

// Structure EEPROM pour sauvegarde paramètres
struct EEPROM_DATA {
  uint32_t magic;
  bool alarm;
  uint8_t minutes, hours;
  bool format12hr;
  uint8_t brightness;
  uint8_t tune;
  bool formatDmy;
  bool squareFont;
};

// Gestion boutons, modes (CLOCK, TIME_SET, DATE_SET, ALARM_SET, TUNE_SET, BRIGHT_SET, FORMAT_SET)
// Affichage grands digits (6x6), petits digits (5x3), digits carrés (5x3) selon config
// Calcul distance, gestion alarme, lecture/écriture EEPROM, lecture RTC, affichage heure/date
// Lecture carte SD (PetitFS) pour distance accumulée et seuil alarme
// Envoi données vers Thinger.io via HTTP POST (SIM900)
// Commandes SMS : POS, GETKM, RESETKM

Fichiers de code fournis

Schémas et fichiers CAO

Processus de fabrication

  1. Horloge POV Arduino : Construire un affichage LED à persistance rétinienne
  2. Horloge à Mots DIY Arduino – Afficheur Temps Réel Élégant et Personnalisable
  3. Horloge Arduino temps réel pour les heures de prière islamiques
  4. Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
  5. Horloge à bascule Arduino avec matrice LED 8×8 – Projet DIY d'horloge temps réel
  6. Maîtriser une matrice LED 8×8 avec Arduino Uno : Guide pas à pas
  7. eDOT : Horloge Arduino précise et station météo avec télécommande IR intégrée
  8. Système radar compact Arduino avec capteur ultrasonique HC-SR04 et écran 1,8"
  9. Construire un Réveil Fiable avec RTC DS1302 et Arduino UNO