Mes bricolages électroniques

Mes bricolages électroniques

TickTockShield et TM1636

 

Si vous êtes ici, c'est peut-être parce que l'utilisation de ce shield ne vous semble pas aisée.

 

Voici un petit programme qui permet d'afficher l'heure (HH:MM) sur le digit. Il fait aussi clignoter les deux points toutes les 0,5 secondes. Il ne fait que çà pour le moment. Il n'est pas encore possible de changer l'heure et le jour du module,  à vous de le programmer avant d'utiliser ce programme, sinon l'heure ne sera pas correcte.

La librairie TM1636.h est dispo ici.

La librairie DS1307.h est dispo ici.

 

//***    Déclarations librairies    **
#include "TM1636.h"
#include <DS1307.h>


//***    Déclarations composants    **
TM1636 tm1636(7,8);
DS1307 rtc(A4, A5);


//***    Déclarations variables    **
boolean fpoint;          //Point clignotant
int8_t disp[4];          //Valeur de sortie sur digits
String heurertc;         //Heure provennant du module RTC
int h1;                  //Découpe dizaine heure pour digits
int h2;                  //Découpe unitée heure pour digits
int m1;                  //Découpe dizaine minutes pour digits
int m2;                  //Découpe unitée minutes pour digits


//***    SETUP    **
void setup() {  
tm1636.init();            //Initialisation TM1636


}//Fin setup


//***    Programme principal    **
void loop() {
heurertc = rtc.getTimeStr(FORMAT_SHORT);    //Récupère heure du RTC

int h1 = heurertc.substring(0,1).toInt();   //Découpe dizaine heure pour digits
int h2 = heurertc.substring(1,2).toInt();   //Découpe unitée heure pour digits
int m1 = heurertc.substring(3,4).toInt();   //Découpe dizaine minutes pour digits
int m2 = heurertc.substring(4,5).toInt();   //Découpe unitée minutes pour digits

//Fait clignoter les 2 points

if(fpoint == LOW) {
  tm1636.point(POINT_ON);  //Allume les :
  fpoint = HIGH;
} else {
  tm1636.point(POINT_OFF);  //Eteint les :
  fpoint =LOW;
}         

disp[0] = h1;          //Transfers les valeurs pour l'afficheur
disp[1] = h2;
disp[2] = m1;
disp[3] = m2;

tm1636.display(disp); //Envoie les valeurs à l'afficheur

delay(500);    //Attend 0.5 sec avant d'actualiser
}//Fin loop



06/05/2014
0 Poster un commentaire

A découvrir aussi


Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour