HORLOGE shield Mémoire

Un log shield sur carte SD avec horloge RTC et zone de prototypage à pastilles carrées

HORLOGE shield Mémoire

Message non lude semtou » Sam 25 Juin 2011 07:45

Salut à tous
Comment faire pour afficher l'heure et la date à partir du shield Mémoire ?
Hé bien voilà :
Image
Une des difficultés avec l'utilisation de la librairie "RTClib.h"
c'est d'une part le fait quelle renvoie la date et l'heure sous forme : 1 pour une seconde et non 01.
et d'autre part que la mise en forme et à réaliser soit-même : DATE = 20/08/2011 pour la date comme pour l'heure.
Pour vous faire gagner du temps et si comme moi vous êtes sur un projet de datalogger avec mise en forme de l'heure et de la date voici le code :
Code: Tout sélectionner
// Programme pour l'affichage de la date et de l'heure sur un ecran SERIE LCD 1602
// en utilisant un RTC DS1307 connecté via I2C et la librairie RTClib.h

#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 RTC;

long g = 0;

void setup () {
  Serial.begin(9600);
  Wire.begin();
  RTC.begin();
  if (! RTC.isrunning()) {
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
}

 
void loop () {
    DateTime now = RTC.now();
    int s = now.second();
    int m = now.minute();
    int h = now.hour();
    int j = now.day();
    int mo = now.month();
    int a = now.year();
    Serial.print("$GO 1 1\r\n");
    Serial.print("$PRINT HEURE \r\n");
// HEURES     
    Serial.print("$GO 1 9\r\n");
     if (h < 10){
      Serial.print("$PRINT 0\r\n");
     }
    Serial.print("$PRINT ");
    Serial.print (h);
    Serial.print("\r\n");   
// MINUTES   
    Serial.print("$GO 1 11\r\n");
    Serial.print("$PRINT :\r\n");   
    Serial.print("$GO 1 12\r\n");
     if (m < 10){
      Serial.print("$PRINT 0\r\n");
     }
    Serial.print("$PRINT ");
    Serial.print (m);
    Serial.print("\r\n");   
// SECONDES   
    Serial.print("$GO 1 14\r\n");
    Serial.print("$PRINT :\r\n");
    Serial.print("$GO 1 15\r\n");
     if (s < 10){
      Serial.print("$PRINT 0\r\n");
     }
    Serial.print("$PRINT ");
    Serial.print (s);
    Serial.print("\r\n");
// LIGNE 2
    Serial.print("$GO 2 1\r\n");
    Serial.print("$PRINT DATE \r\n");
// JOURS   
    Serial.print("$GO 2 7\r\n");
     if (j < 10){
      Serial.print("$PRINT 0\r\n");
     }
    Serial.print("$PRINT ");
    Serial.print (j);
    Serial.print("\r\n");   
// MOIS   
    Serial.print("$GO 2 9\r\n");
    Serial.print("$PRINT /\r\n");   
    Serial.print("$GO 2 10\r\n");
     if (mo < 10){
      Serial.print("$PRINT 0\r\n");
     }
    Serial.print("$PRINT ");
    Serial.print (mo);
    Serial.print("\r\n");   
// ANNEE   
    Serial.print("$GO 2 12\r\n");
    Serial.print("$PRINT /\r\n");
    Serial.print("$GO 2 13\r\n");
    Serial.print("$PRINT ");
    Serial.print (a);
    Serial.print("\r\n");
}




Pour ma part j'ai utilisé un écran LCD SERIE 1602 qui fonctionne avec seulement 4 fils 2 pour l'alim. et 2 pour la communication RX et TX.
Donc on trouve ci-dessous et dans l'ordre : la carte arduino, le shield Mémoire, un shield SensorShield pour la connexion c'est bien pratique.
Image Image Image

Voila le projet complet, le joystick ne sert pas encore, et l'interrupteur à droite sert à l'alimentation de l'écran.
Je remercie David pour l'écran et Fred pour la carte Mémoire qui est vraiment super et dont je n'exploite là qu'une infime partie.
A +
SEMTOU
Avatar de l’utilisateur
semtou
 
Messages: 35
Inscription: Jeu 23 Déc 2010 08:31
Localisation: Toulouse

Re: HORLOGE shield Mémoire

Message non lude Lionel » Lun 27 Juin 2011 14:13

Bonjour Philippe,

Merci de nous faire partager ça, très beau travail !

A bientôt.
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse


Retourner vers Mémoire

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron