Horloge RTC

Bonjour à tous,

Je suis entrain d’essayer de créer une horloge 6 digits RTC. Niveau électronique je gère, sa fonctionne, mais je pêche pour le programme. Je cherche comment récupérer mes valeurs et les afficher.

schéma électronique :http://img15.hostingpics.net/pics/613246horloge1.jpg

Voilà le début de mon code (initialisation des broches).

// Programme horloge 6 digits temps réel

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

RTC_DS1307 RTC; // Déclarer DS3231 en DS1307
// SDA sur A4
// SCL sur A5

int reset_pin = 5; // Pin reset CD4017
int clock_pin = 6; // Pin clock CD4017
int seg_A = 6; // Pin segment A
int seg_B = 7; // Pin segment B
int seg_C = 8; // Pin segment C
int seg_D = 9; // pin segment D
int seg_E = 10; // Pin segment E
int seg_F = 11; // Pin segment F
int seg_G = 12; // Pin segment G

void setup() {
Serial.begin(9600); // Cadencement lecture module à 9600 Bauds
Wire.begin(); // Demarrer le service Wire
RTC.begin(); // Demarrer le service RTC

pinMode(reset_pin,OUTPUT); // Définir type de pin
pinMode(clock_pin,OUTPUT);
pinMode(seg_A,OUTPUT);
pinMode(seg_B,OUTPUT);
pinMode(seg_C,OUTPUT);
pinMode(seg_D,OUTPUT);
pinMode(seg_E,OUTPUT);
pinMode(seg_F,OUTPUT);
pinMode(seg_G,OUTPUT);

digitalWrite(reset_pin,HIGH); // Remise à zéro du CD4017
digitalWrite(reset_pin,LOW);

}

void loop() {

DateTime now = RTC.now(); // Lire l’heure du module

{
digitalWrite(clock_pin,HIGH);
digitalWrite(clock_pin,LOW);
delayMicroseconds(800); // Balayage à 1250Hz
}

}

Si quelqu’un peut m’aider pour la suite, merci d’avance ! :slight_smile:

gg25

Salut,

Niveau électronique je gère, sa fonctionne

C'est à dire qu'est ce qui fonctionne ? As tu fait un programme de test du matériel?

Je cherche comment récupérer mes valeurs et les afficher.

Et sur Internet il n'y a rien ? :smiley:

Oui j'ai fais un programme qui test le matériel, j'arrive à allumer chaque chaque segments. J'avais vu cet exemple, mais c'est directement "printé" sur le LCD. Moi je dois décomposer les chiffres pour les afficher indépendamment.

hello
voir là

page 3 post #33

Pour récupérer l'heure de ta RTC, tu le fais déjà dans ton code:

DateTime now = RTC.now();

Tu as donc un object de la classe DateTime, qui possède des méthodes telles que hour, minute et second ( à vérifier dans la librairie que tu utilise... ). Par exemple:

Serial.println( now.hour() );

Pour décomposer un nombre en chiffres, c'est simple, surtout pour un nombre à deux chiffres.

Par exemple pour le nombre 23:

  • Le chiffre 2 est le quotient de la division de 23 par 10.
  • Le chiffre 3 est le reste de la division de 23 par 10.
uint8_t nombre = 23;

uint8_t premierChiffre  = nombre / 10; // 2
uint8_t deuxiemeChiffre = nombre % 10; // 3