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

Horloge numérique TM1637 avec réglage heure/alarme – Prototype Arduino Nano

Composants et fournitures

Arduino Nano R3 ×1
Afficheur 4 digits TM1637 ×1
Module RTC DS1302 ×1
LED bleue (ex: LilyPad) ×1
Buzzer (alarme) ×1
3 boutons poussoirs (réglage) ×3

À propos du projet

Prototype d'horloge numérique avec afficheur 4 digits TM1637, module RTC DS1302 (maintien heure sur pile), et interface de réglage heure/alarme par 3 boutons. Conçu comme base réutilisable pour futurs projets d'horloges. Code modulaire et commenté.

Fonctionnalités

Principe de réglage (boutons A et B en interruption)

  1. Appui long bouton A (>30 ms) : entre en mode réglage (heure courante ou alarme selon état).
  2. Chiffre courant clignote (position 0→1→2→3).
  3. Bouton B incrémente le chiffre clignotant (avec limites : heures 0-23, minutes 0-59).
  4. Nouvel appui long sur A : valide, passe au chiffre suivant ou sort du mode.
  5. En mode heure : écriture directe dans le DS1302 via setDS1302Time().

Code complet

// Mario's Ideas - TM1637 Digital Clock with Setup and Alarm
#include 
#include 
#include 

// RTC : CLK=A1, DAT=A2, RST=A3
virtuabotixRTC myRTC(A1, A2, A3);

#define CLK 4
#define DIO 5
#define BTN_ALARM 9
#define BUZZER 13
#define LED_ALARM 8
#define BTN_A 2  // Interruption
#define BTN_B 3  // Interruption

TM1637Display clock(CLK, DIO);

int minutes, hours;
int Alarm_minutes = 5, Alarm_hours = 18;
uint8_t Blank[] = {0x0};
int POSITION = 0;
int digits[4];
volatile int interval = 0;
volatile boolean Alarm_set = false;
volatile boolean Alarm_in_progress = false;
volatile boolean Setup_on = false;

void setup() {
  attachInterrupt(digitalPinToInterrupt(BTN_A), Press_A_Button, RISING);
  attachInterrupt(digitalPinToInterrupt(BTN_B), Press_B_Button, RISING);
  pinMode(BTN_ALARM, INPUT);
  pinMode(BUZZER, OUTPUT);
  pinMode(LED_ALARM, OUTPUT);
  digitalWrite(BUZZER, LOW);
  clock.setBrightness(0x0f);
  Serial.begin(9600);
}

void Press_A_Button() {
  if (interval > 3) {
    if (!Setup_on) {
      Setup_on = true;
      // Initialise digits[] depuis RTC ou alarme
    } else {
      POSITION++;
      if (POSITION == 4) {
        // Sauvegarde (RTC ou alarme) + sortie mode
        POSITION = 0;
        Setup_on = false;
      }
    }
    interval = 0;
  }
}

void Press_B_Button() {
  if (interval > 3 && Setup_on) {
    digits[POSITION]++;
    // Gestion bornes (heures/minutes)
    interval = 0;
  }
  interval = 0;
}

void loop() {
  // Gestion bouton Alarme ON/OFF (anti-rebond 30)
  // Mise à jour RTC
  myRTC.updateTime();

  if (Setup_on) {
    // Affichage digits[] avec clignotement position courante
  } else {
    // Vérification alarme
    if (myRTC.minutes == Alarm_minutes && myRTC.hours == Alarm_hours && Alarm_set) {
      Alarm_in_progress = true;
    }
    if (Alarm_in_progress) {
      digitalWrite(BUZZER, HIGH); delay(1000);
      digitalWrite(BUZZER, LOW);  delay(1000);
    }
    // Affichage normal heure RTC (maj seulement si minute change)
  }
  if (interval < 200) interval++;
}

Code complet avec gestion détaillée des interruptions, affichage multiplexé, et écriture RTC disponible dans la section code du projet original.

Schémas

Schéma de câblage : Arduino Nano → TM1637 (CLK/DIO), DS1302 (A1/A2/A3), 3 boutons (D2, D3, D9), Buzzer (D13), LED (D8). Alimentation 5V commune. Disponible en section schémas.

Processus de fabrication

  1. Capteurs analogiques vs numériques : types, applications et exemples pratiques
  2. Construire une alarme à eau headless Raspberry Pi 2 avec Adafruit T‑Cobbler Plus
  3. Construire un robot avec Raspberry Pi et Python : Guide complet
  4. Fiix et IDC : Comment la Transformation Digitale Boost la Fiabilité Manufacturière
  5. Prévenir les arrêts majeurs : comment la surveillance par émissions acoustiques a sauvé un fabricant alimentaire
  6. 8 méthodes éprouvées pour réduire les coûts de maintenance et augmenter les revenus avec les logiciels de maintenance numérique
  7. Accélérer la transformation numérique : La plateforme IdO Edge-to-Cloud de Cisco & IBM
  8. Construire un Réveil Fiable avec RTC DS1302 et Arduino UNO
  9. Comprendre la fonctionnalité et l'innovation des roulements dans les machines modernes