[Arduino] memoriser l'heure

L’espace pour parler de tout ce qui concerne l’électronique embarquée
Avatar de l’utilisateur
papy94
Messages : 653
Inscription : 23 janv. 2010 14:31
Localisation : Champigny sur marne
Contact :

[Arduino] memoriser l'heure

Message par papy94 »

Module à 3€

Image
Image

Two wire I2C interface
Hour : Minutes : Seconds AM/PM
Day Month, Date - Year
Leap year compensation
Accurate calendar up to year 2100
DS1307 based RTC with LIR2032 battery (Battery included)
1Hz output pin
56 Bytes of Non-volatile memory available to user
Size: 28x27x8.4mm

Cela peut servir a gérer une alarme sur plusieurs mois,année, surveillance d'une cuve eau de pluie ect..
avec la pile, le module peut facilement tenir 2 ans

----------------------------------------

Code : Tout sélectionner

//Arduino with Tiny RTC I2C et
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;


void setup () {

  Serial.begin(9600); //Initialiser le port serie
  Wire.begin();       //Initialiser la bibliotheque Wire
  RTC.begin();        //Initialiser le module RTC
  //Verifier si le module RTC fonctionne, sinon nous envoyons Erreur
  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    //Enlever le commentaire de la ligne suivante, pour mettre le module a l'heure du PC
    //RTC.adjust(DateTime(__DATE__, __TIME__));
  }

}
void loop () {
 Serial.print("Ont est le "); 
  DateTime now = RTC.now();
//--------
switch (now.dayOfWeek()) {
  case 1:
   Serial.print("Lundi "); 
   break;
  case 2:
   Serial.print("Mardi ");
   break; 
  case 3:
   Serial.print("Mercredi ");
   break;  
  case 4:
   Serial.print("Jeudi ");
   break;  
  case 5:
   Serial.print("Vendredi ");
   break;  
  case 6:
   Serial.print("Samedi ");
   break;  
  case 7:
   Serial.print("Dimanche ");
   break;  
 }  
//--------------

  if (now.day() < 10){Serial.print("0");}
  Serial.print(now.day(), DEC);Serial.print('/'); //Imprimer Jour et barre

  if (now.month() < 10){Serial.print("0");}
  Serial.print(now.month(), DEC);Serial.print('/'); //Imprimer mois et barre

  Serial.print(now.year(), DEC);Serial.print(' '); //Imprimer annee et espace

Serial.print(", il est "); 
  
  if (now.hour() < 10){Serial.print("0");}
  Serial.print(now.hour(), DEC);  Serial.print(':'); //Imprimer heure et :

  if (now.minute() < 10){Serial.print("0");}
  Serial.print(now.minute(), DEC);Serial.print(':');//Imprimer minute et :

  if (now.second() < 10){Serial.print("0");}
  Serial.print(now.second(), DEC);Serial.println(); //Imprimer seconde et saut de ligne

  delay(5000);  //Delay de 5s entre les envoies ecran}
}
sur le monitor il s'affiche toutes les 5 secondes:

Code : Tout sélectionner

Ont est le Mercredi 26/06/2013 , il est 17:44:45
Ont est le Mercredi 26/06/2013 , il est 17:44:50
Ont est le Mercredi 26/06/2013 , il est 17:44:55
Ont est le Mercredi 26/06/2013 , il est 17:45:00
Ont est le Mercredi 26/06/2013 , il est 17:45:05
Ont est le Mercredi 26/06/2013 , il est 17:45:10
Ont est le Mercredi 26/06/2013 , il est 17:45:15
Ont est le Mercredi 26/06/2013 , il est 17:45:20
Ont est le Mercredi 26/06/2013 , il est 17:45:25
Ont est le Mercredi 26/06/2013 , il est 17:45:30
Ont est le Mercredi 26/06/2013 , il est 17:45:35
Ont est le Mercredi 26/06/2013 , il est 17:45:40
Répondre