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 configuration de l'heure et fonctionnalité d'alarme

Composants et fournitures

Arduino Nano R3
× 1
TM1637 Affichage à 4 chiffres
× 1
Module RTC DS1302
× 1
SparkFun LilyPad LED Bleu (5pcs)
× 1
Sonnerie
× 1

À propos de ce projet

Il s'agit d'un prototype du mécanisme de configuration de l'heure et de l'alarme que je prévois d'utiliser dans mes prochains projets d'horloge numérique. J'espère que vous le trouverez utile. Si vous pensez à des améliorations, faites-le moi savoir. Je serais plus qu'heureux de les examiner et de les intégrer potentiellement dans mon code.

Vous pouvez regarder l'intégralité du tutoriel sur

Si vous aimez ce contenu et que vous souhaitez m'aider à créer des vidéos similaires, rendez-vous sur ma page Web Patreon

https://www.patreon.com/MariosIdeas

Ou

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7PD67JWZ9S3EJ&source=url

Code

  • Affichage de l'heure à partir du module RTC plus configuration de l'heure et fonctionnalité de configuration de l'alarme
Affichage de l'heure du module RTC plus configuration de l'heure et fonctionnalité de configuration de l'alarmeArduino
Ce code lit l'heure actuelle du module RTC. Ensuite, il permet également de mettre à jour l'heure actuelle et de configurer l'heure de l'alarme.
Les actions de configuration sont effectuées à l'aide de 3 boutons.
// Mario's Ideas// Horloge numérique TM1637 avec fonctionnalité de configuration et d'alarme#include #include #include  //// Déclaration du module RTC// PINS CLK, DAT, RSTvirtuabotixRTC myRTC(A1,A2,A3) ;// Variables pour stocker les valeurs précédentes lues RTC moduleint minutes;int heures ;// Variables pour stocker l'heure à laquelle l'alarme doit se déclencher int Alarm_minutes=05;int Alarm_hours=18;uint8_t Blank[] ={0x0};int POSITION=0;//Table pour stocker 4 chiffres, utilisés dans la procédure de configuration de l'heure et de l'alarmeint digits[3];int interval=0;#define Alarme 9 // Bouton pour activer ou désactiver le mode alarme#define Buzer 13#define Led 8//Statusesboolean Alarm_set=false;boolean Alarm_in_progress=false;boolean Setup_on=false;// Broches de connexion d'affichage à 4 chiffres (Digital Pins)#define CLK 4#define DIO 5// 4 digit display declarationTM1637Afficher l'horloge (CLK, DIO);void setup() { attachInterrupt(digitalPinToInterrupt(2), Press_A_Button,RISING); attachInterrupt (digitalPinToInterrupt(3), Press_B_Button, RISING); pinMode(Alarme, ENTRÉE); pinMode (Buzer, SORTIE); pinMode (DEL, SORTIE); digitalWrite (Buzer, LOW); clock.setBrightness (0x0f); Serial.begin(9600);}void Press_A_Button(){ if (interval>3){ if (Setup_on==false){ Setup_on=true; if (Alarm_set==true){ digits[0]=(int)Alarm_hours/10 ; chiffres[1]=Heures_alarme-((int)heures_alarme/10)*10 ; chiffres[2]=(int)Alarm_minutes/10 ; chiffres[3]=Alarme_minutes-((int)Alarm_minutes/10)*10 ; } else { digits[0]=(int)myRTC.hours/10; chiffres[1]=mes heures RTC-((int) mes heures RTC/10)*10 ; chiffres[2]=(int)myRTC.minutes/10 ; chiffres[3]=myRTC.minutes-((int)myRTC.minutes/10)*10 ; } } else{ POSITION++; if (POSITION==4){ if (Alarm_set==true){ Alarm_minutes=digits[3]+digits[2]*10 ; Heures_alarme=chiffres[1]+chiffres[0]*10 ; } else { myRTC.setDS1302Time( 0, digits[3]+digits[2]*10, digits[1]+digits[0]*10,myRTC.dayofweek, myRTC.dayofmonth, myRTC.month, myRTC.year); clock.showNumberDec(chiffres[0],false,1,0) ; clock.showNumberDec(chiffres[1],false,1,1) ; clock.showNumberDec(chiffres[2],false,1,2) ; clock.showNumberDec(chiffres[3],false,1,3) ; } POSITION=0; Setup_on=false ; } } } interval=0;}void Press_B_Button(){ if (interval>3){ if(Setup_on){ digits[POSITION]=digits[POSITION]+1; si (POSITION==0 et chiffres[POSITION]==3) chiffres[POSITION]=0 ; si (POSITION!=0 et chiffres[POSITION]==10) chiffres[POSITION]=0 ; intervalle=0 ; } } interval=0;}void loop() { if (digitalRead(Alarm)==HIGH et Alarm_set==false ){ if (interval>30){ digitalWrite(Led,HIGH); Alarm_set=true ; retard (300); } } else{ if (digitalRead(Alarm)==HIGH et Alarm_set==true){ if (interval>30){ Alarm_set=false ; Alarm_in_progress=false ; digitalWrite(Led,LOW); retard (300); } } } monRTC.updateTime(); if (Setup_on==true){ clock.showNumberDec(digits[0],false,1,0) ; clock.showNumberDec(chiffres[1],false,1,1) ; clock.showNumberDec(chiffres[2],false,1,2) ; clock.showNumberDec(chiffres[3],false,1,3) ; retard (200); clock.setSegments(Vide, 1,POSITION); retard (200); clock.showNumberDec(chiffres[0],false,1,0) ; clock.showNumberDec(chiffres[1],false,1,1) ; clock.showNumberDec(chiffres[2],false,1,2) ; clock.showNumberDec(chiffres[3],false,1,3) ; } else{ if (myRTC.minutes==Alarm_minutes et myRTC.hours==Alarm_hours et Alarm_set==true et Setup_on==false){ Alarm_in_progress=true ; } if (Alarm_in_progress){ digitalWrite(Buzer,HIGH); retard(1000); digitalWrite (Buzer, LOW); retard(1000); } if (myRTC.minutes!=minutes){ clock.showNumberDecEx((int)myRTC.hours/10*1000+(myRTC.hours-((int)myRTC.hours/10)*10)*100+ (int) myRTC.minutes/10*10+myRTC.minutes-((int)myRTC.minutes/10)*10, (0x80>> 1), vrai); minutes=monRTC.minutes ; heures=monRTC.heures ; } } if (intervalle<200) intervalle++;}

Schémas


Processus de fabrication

  1. Types de capteurs analogiques et numériques avec applications
  2. Avertisseur d'eau Raspberry Pi 2 avec t cobbler plus
  3. Créer des robots avec Raspberry Pi et Python
  4. Exploration de la transformation numérique avec Fiix et IDC
  5. Gagner du temps et de l'argent grâce à la surveillance des conditions
  6. 8 façons de réduire les coûts de maintenance et d'augmenter les revenus avec un logiciel de maintenance
  7. Accélérer la transformation numérique avec les données IoT, grâce à Cisco et IBM
  8. Réveil simple avec DS1302 RTC
  9. La fonctionnalité et l'avancement du roulement