• Post category:Fort
  • Post comments:0 commentaire
  • Post last modified:mai 25, 2022
  • Temps de lecture :7 min de lecture

Afficher l’heure d’un DS1302 sur un HW-069 ( TM1637 ) avec Arduino

Niveau APPRENTISSAGE :   Fort

 

    Prérequis :

Matériel :

Version IDE :

Bibliothèque :

 

 

Vidéo de démonstration :

 

Schéma de câblage :

 

Code :

// Inclure le code de la bibliothèque:
#include "TM1637.h"
// Initialise le module TM1637 avec le numéro des pins connecté.
// TM1637 tm1637(CLK pin, DIO pin);
TM1637 tm1637(2, 3);

// Inclure le code de la bibliothèque:
#include <DS1302.h>
// Initialise le module DS1302 avec le numéro des pins connecté.
// DS1302 rtc(RST pin, DAT pin, SCLK pin);
DS1302 rtc(5, 6, 7);
// Init une structure de données temporelles.
Time t;
// Déclaration d'un tableau Heure qui va servir à stocker des valeurs au format int.
int Heure[2];
// Déclaration d'un tableau Minute qui va servir à stocker des valeurs au format int.
int Minute[2];

void setup() {
  // Initialiser la communication série à 9600 bits par seconde.
  Serial.begin(9600);
  // rtc.halt
  // Active "false" ou désactive "true" l'horloge.
  rtc.halt(false);
  // rtc.writeProtect :
  // "true" active la protection en écriture.
  // "false" désactive la protection en écriture et permet de mettre l'horloge à l'heure.
  rtc.writeProtect(false);

  rtc.setDOW(FRIDAY);        // Permet de définir le jour de la semaine.
  rtc.setTime(12, 56, 0);     // Permet de régler l'heure ( format 24h ).
  rtc.setDate(10, 8, 2010);   // Permet de régler la date.

  // Initialise le module TM1637.
  tm1637.init();
  // Permet de régler la luminosité de l'afficheur.
  tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
}

void loop()
{
  // Récupère les données du DS1302.
  t = rtc.getTime(); 
  // Imprime la valeur que vous avez reçu dans t.hour au format DEC.
  Serial.print(t.hour, DEC);
  // Imprime du texte dans le moniteur série.
  Serial.print(":");
  //Etc...
  Serial.print(t.min, DEC);
  Serial.print(":");
  Serial.println(t.sec, DEC);

  //Permet d'isoler le chiffre des unités de t.hour et stock sa valeur dans Heure[0].
  Heure[0] = t.hour % 10;
  //Permet d'isoler le chiffre des dizaines de t.hour et stock sa valeur dans Heure[1].
  Heure[1] = t.hour / 10;
  //Etc...
  Minute[0] = t.min % 10;
  Minute[1] = t.min / 10;

  //Affiche la valeur de Heure[1] sur le 1er Digit de l'afficheur ( Valeur 0 = 1er Digit ).
  tm1637.display(0, Heure[1]);
  tm1637.display(1, Heure[0]);
  tm1637.display(2, Minute[1]);
  tm1637.display(3, Minute[0]);
  // Ative les ":" sur afficheur.
  tm1637.point(POINT_ON);
  // Attend 1 seconde.
  delay (1000);
}

 

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Laisser un commentaire