Você está na página 1de 6

Arduino Forum (http://forum.arduino.cc/index.php) > International (http://forum.arduino.cc/index.

php#c6)

> Français (http://forum.arduino.cc/index.php?board=33.0)

> Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?topic=186915.0)

Go Down Pages: [1]


PRINT (HTTP://FORUM.ARDUINO.CC/INDEX.PHP?ACTION=PRINTPAGE;TOPIC=186915.0)

Topic: Programme simple utilisant RTC DS1307 (Read 6043 times)


v_next=Prev#New) - Next Topic (Http://Forum.Arduino.Cc/Index.Php?Topic=186915.0;Prev_next=Next#New)

Tiboter Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?


topic=186915.msg1383828#msg1383828)
Guest
Sep 08, 2013, 07:25 pm (http://forum.arduino.cc/index.php?topic=186915.msg1383828#msg1383828)

Bonjour à tous.

Je suis débutant en programmation, j'ai déjà réalisé quelques programmes simple sur
arduino, mais je m'intéresse aujourd'hui au module RTC pour contrôler des actionneur
en fonction du temps.

Mon problème: je ne parviens pas à trouver un tuto clair sur le sujet. pour commencer
je voudrai simplement faire changer l'état d'une led en fonction de l'heure de la
journée.

J'ai réussi à régler l'heure du module, mais je ne parvient pas à le faire interagir avec les
sortis.

Je suis conscients que c'est une interrogation de novice, je ne demande pas que l'on
écrive un code à ma place, mais simplement que l'on m'indique un tuto qui décrit les
choses simplement sans l'utilisation simultané d'un écran ou autres sondes.

Merci d'avance pour vos réponses.

romain93 Re: Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?


topic=186915.msg1383862#msg1383862)
Guest #1
Sep 08, 2013, 08:05 pm (http://forum.arduino.cc/index.php?topic=186915.msg1383862#msg1383862)

si sa peut t'aider

Code: [Select]

if ((RTC.get(DS1307_SEC,false)) == 0 ) //si la seconde est 0 la led s'alu


{
digitalWrite(led, HIGH);
}

else if ((RTC.get(DS1307_SEC,false)) == 30 ) //si la seconde est 30 la le


digitalWrite(led, LOW);
}

fdufnews Re: Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?


(http://forum.arduino. topic=186915.msg1383901#msg1383901)
Sep 08, 2013, 08:59 pm (http://forum.arduino.cc/index.php?topic=186915.msg1383901#msg1383901) #2
cc/index.php?
action=profile;u=7620)
Il y a un tuto ici : http://learn.adafruit.com/ds1307-real-time-clock-breakout-board-
kit/overview (http://learn.adafruit.com/ds1307-real-time-clock-breakout-board-
kit/overview)
Les fonctions de base de la librairie sont présentées. Les explications sont données
(http://forum.arduino.cc pour écrire et lire dans le composant.
/index.php? Si tu sais lire l'heure, après il suffit de faire des comparaisons entre l'heure lue et une
action=profile;u=7620) heure que tu as fixée au paravent et à laquelle tu déclenches un événement.
Quand je dis heure cela peut aussi bien être heure, minute, seconde ou seulement
Faraday Member minute ou n'importe quelle combinaison des champs de la date et de l'heure.
Le boîtier gérant aussi la date, tu peux faire un truc qui tous les mardi entre 15h00 et
Posts: 5,793
15h16 fera clignoter un LED 5 secondes toutes les minutes.
Karma: 218  [add]
(http://forum.arduino.cc
/index.php?
action=karma;sa=applau
d;uid=7620;adf64b2d20
0=0efb2945223087600f
3e9b534eec0b2a)
There is an Arduino for that

Tiboter Re: Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?


topic=186915.msg1383919#msg1383919)
Guest #3
Sep 08, 2013, 09:16 pm (http://forum.arduino.cc/index.php?topic=186915.msg1383919#msg1383919)

oui, à la limite je comprends bien cette boucle, c'est un début.

Mais voila, j'utilise la library RTClib, je ne sais pas comment déclarer les variables, qui
sont heures minutes seconds, ou encore ce qu'il faut inclure au début du code.

voila mon début de code (désolé..)

Code: [Select]

LE%3ACORE+PROFILE%3APUBLIC+PROFILE%3ACONTACT+OFFLINE&RESPONSE_TYPE=CODE)

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

RTC_DS1307 RTC;
void setup() {

Tiboter Re: Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?


topic=186915.msg1383923#msg1383923)
Guest #4
Sep 08, 2013, 09:20 pm (http://forum.arduino.cc/index.php?topic=186915.msg1383923#msg1383923)

Merci fdufnews ce lien m'intéresse. Je vais tester avec ça.

fdufnews Re: Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?


(http://forum.arduino. topic=186915.msg1383946#msg1383946)
cc/index.php? Sep 08, 2013, 09:54 pm (http://forum.arduino.cc/index.php?topic=186915.msg1383946#msg1383946) Last Edit: #5
action=profile;u=7620) Sep 10, 2013, 11:19 am by fdufnews Reason: 1

Quote from: Tiboter on Sep 08, 2013, 09:16 pm (http://forum.arduino.cc/index.php?


topic=186915.msg1383919#msg1383919)

(http://forum.arduino.cc
/index.php?
❝oui, à la limite je comprends bien cette boucle, c'est un début.
action=profile;u=7620)
Mais voila, j'utilise la library RTClib, je ne sais pas comment déclarer les variables, qui sont heures
minutes seconds, ou encore ce qu'il faut inclure au début du code.
Faraday Member
Posts: 5,793 voila mon début de code (désolé..)

Karma: 218  [add]
Code: [Select]
(http://forum.arduino.cc
/index.php?
action=karma;sa=applau #include <Wire.h>
d;uid=7620;adf64b2d20 #include "RTClib.h"
0=0efb2945223087600f
RTC_DS1307 RTC;
3e9b534eec0b2a)
There is an Arduino for that
void setup() {

pinMode(13, OUTPUT);

Avec RTClib, il faut distinguer 2 choses:


  la classe RTC_1307 qui accède au composant horloge temps réel
  la classe DateTime qui manipule le temps

Une fois l'horloge à l'heure normalement tu n'utilises plus que RTC.now() qui va lire
l'heure courante dans le composant et le mettre dans un objet DateTime. C'est ce que
fait cette ligne:
Code: [Select]

DateTime now = RTC.now();

ensuite tu utilises les propriétés de l'objet now pour récupérer les différentes parties de
l'heure.
now.year()
now.month()
now.day()
now.hour(), et pareil avec .minute(), .second() et .dayOfWeek
Ces propriétés retournent des nombres de type uint8_t sauf l'année qui retourne un
uint16_t.

Donc tu peux les utiliser facilement. Un exemple simple qui allume une LED à une
heure donnée
Code: [Select]

DateTime heureRTC;
uint8_t heureAlarme=8;
uint8_t minuteAlarme=23;

heureRTC = RTC1307.now();

if (heureRTC.hour()==heureAlarme && heureRTC.minute()==minuteAlarme){


digitalWrite(LEDpin,HIGH);

Ce morceau de code pour qu'il fonctionne correctement doit être appelé


périodiquement. Il peut par exemple être placé dans la fonction loop()

edit correction sur l'erreur de type uint8_t

Tiboter Re: Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?


topic=186915.msg1384381#msg1384381)
Guest #6
Sep 09, 2013, 09:15 am (http://forum.arduino.cc/index.php?topic=186915.msg1384381#msg1384381)

Ok, merci beaucoup, je commence à comprendre. (je n'y été pas du tout au départ  )

Bref voila mon code, je pence que je ne déclare pas tout comme il faut:

Code: [Select]

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

RTC_DS1307 RTC;

void setup() {
pinMode(13, OUTPUT);
}

J'ai des erreurs du type :

'u_int8' was not declared in this scope


Merci beaucoup pour vos réponses.

haifger Re: Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?


(http://forum.arduino. topic=186915.msg1384389#msg1384389)
Sep 09, 2013, 09:27 am (http://forum.arduino.cc/index.php?topic=186915.msg1384389#msg1384389) #7
cc/index.php?
action=profile;u=17942
6) fdufnews s'est mélangé les touches en tapant son code :) ...il voulait écrire uint8_t
en fait.

(http://forum.arduino.cc
/index.php?
action=profile;u=179426)

Sr. Member
Posts: 323
Karma: 19  [add]
(http://forum.arduino.cc
/index.php?
action=karma;sa=applau
d;uid=179426;adf64b2d2
00=0efb2945223087600
f3e9b534eec0b2a)

fdufnews Re: Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?


(http://forum.arduino. topic=186915.msg1384414#msg1384414)
Sep 09, 2013, 10:00 am (http://forum.arduino.cc/index.php?topic=186915.msg1384414#msg1384414) #8
cc/index.php?
action=profile;u=7620)
Quote from: haifger on Sep 09, 2013, 09:27 am (http://forum.arduino.cc/index.php?
topic=186915.msg1384389#msg1384389)

(http://forum.arduino.cc
❝fdufnews s'est mélangé les touches en tapant son code ...il voulait écrire uint8_t en fait.
/index.php?
action=profile;u=7620)
Oupsss
Faraday Member
Posts: 5,793
Karma: 218  [add]
(http://forum.arduino.cc
/index.php?
action=karma;sa=applau
d;uid=7620;adf64b2d20
0=0efb2945223087600f
3e9b534eec0b2a)
There is an Arduino for that
Tiboter Re: Programme simple utilisant RTC DS1307 (http://forum.arduino.cc/index.php?
topic=186915.msg1385637#msg1385637)
Guest #9
Sep 10, 2013, 09:29 am (http://forum.arduino.cc/index.php?topic=186915.msg1385637#msg1385637)

Super! ça fonctionne! je me suis pas mal pris la tête mais c'est ok maintenant.

Un grand merci à vous surtout.  XD

Go Up Pages: [1]
PRINT (HTTP://FORUM.ARDUINO.CC/INDEX.PHP?ACTION=PRINTPAGE;TOPIC=186915.0)

Jump to:
=> Français   Go

NEWSLETTER

ENTER YOUR EMAIL TO SIGN UP SUBSCRIBE

Copyright Notice (//www.arduino.cc/en/Main/CopyrightNotice)

Contact Us (//www.arduino.cc/en/Main/ContactUs)
About Us (//www.arduino.cc/en/Main/AboutUs)

Careers (//www.arduino.cc/Careers)
© 2018 Arduino

(https://www.facebook.com/official.arduino)
(https://twitter.com/arduino)
(https://plus.google.com/+Arduino)
(https://www.instagram.com/arduino.cc/)
(https://github.com/arduino/)
(https://www.flickr.com/photos/arduino_cc)
(https://www.youtube.com/user/arduinoteam)

Você também pode gostar