Je suis un débutant en électronique (je suis en classe de 5eme) t j’ai un problème sur arduino (comme beaucoup j’imagine !) Alors, la mise en veille d’ardu info a été évoquée de TRÈS nombreuses fois mais moi je veux (voudrais) que mon arduino se mette en veille à une certaine heure. Pour cela j’itilise l’argüions Mega 2560 et le module rtc 1307 . Pouvez vous me dire comment faire pour que l’arduino s’éteigne plus ou moins et qu’elle se rallume automatiquement à une certaine heure. Merci pour vos réponses messieurs et mesdames les professionnels ;))
Bonjour,
as tu déjà commencé un code ?
sur le principe
quand le programme commence, tu prend l'heure qu'il est dans ton module RTC.
tu calcule dans combien de temps il faut que ton arduino se mette en veille.
tu programme un timer avec ce temps.
Lorsque ce timer ce déclenche tu fais entrer l'arduino en veille.
Il faudrait commencer par faire un programme qui récupère les différentes informations.
Idéalement prenez une DS3231 comme RTC? La 1307 va vite dériver…
Ensuite il suffit de surveiller l’heure effectivement
Pour le réveil la DS3231 permet de programmer une alarme qui pourrait envoyer une interruption de réveil
Bonjour TERWAL, j’ai en effet commencé un programme mais bien plus complexe car je réalise un robot capable de fermer une porte , avec une sonnerie ,des leds , un keypad ,un rfid etc…
Pour le moment , j’arrive à afficher l’heure sur le lcd mais pas à programmer la mise en veille de mon arduino . J’ai déjà le programme du RTC et celui de la mise en veille mais je ne sais pas planifier une horaire . Pouvez m’en dire plus à ce sujet ? Merci beaucoup en tout cas . En attendant votre réponse ja vais essayer de nouveaux !
A bientôt.
Et merci encore !!
Séparez les problèmes
Faites un petit code qui utilise la bibliothèque low power et un bouton qui envoie une interruption sur une des pins adéquate de l’arduino (pin 2 par exemple)
Ensuite si votre horloge supporte les alarmes, elle remplacera le bouton (Je vous conseille de changer la RTC si votre système doit tourner plusieurs semaines et que l’heure est importante (vous allez avoir 10 à 20 secondes d’erreur par jour - il existe quelques bidouilles pour améliorer cela mais c’est pas terrible))
Cette bibliothèque permet de gérer l’heure et l’alarme (a la fois pour la 1307 mais aussi la 3231)
J’ai réussi à mettre grâce à l’horloge l’arduino en veille et grâce à la bibliothèque low Power grâce à un if ou j’indique l’heure à laquelle je veux qu’elle s’éteigne. Cependant, je remarque que les pins 5V et gnd sont toujours activé ! Y à il un moyen de les éteindre sinon je prévois d’utiliser un transistor comme interrupteur.
Maintenant que ça marche, pouvez vous me dire ce qui ne va pas avec le module que j’utilise ? Je l’aurais bien changé mais je n’en ai pas encore sous la main.
Et comme on y est encore je me permet de vous poser une autre question : comment écrire les jours de la semaine sur le lcd grâce toujours au même module ? Merci d’avance pour votre réponse !
Comme je l’ai dit deux fois la 1307 dérive dans le temps. Si vous n’avez pas de chance à 20 seconde par jour vous avez déjà 10 minutes de décalage en un mois d’usage, une heure au bout de 6 mois…
Donc si avoir la bonne heure est important pour vous…
Merci pour votre réponse , je n’ai pas besoin d’une heure EXTRÊMEMENT précise , ce module me suffit mais dès que j’en aurais l’occasion j’en prendrais probablement un nouveau, pour le moment , décalage de dix secondes à cause de la durée du televersement mais s’il décale trop je lui redonnerais l’heure . Merci pour tout en tout cas !
Oui, et je ne vois pas quel problème cela pose. à moins qu'il s'agisse d'éteindre le LCD ?
Le DS1307 ne dispose pas de broche d'alarme. Il faut utiliser la mise en sommeil de l'ARDUINO, (maximum = 8 secondes) et vérifier l'heure à chaque réveil.
Le DS3231 possède une broche d'alarme. On peut relier celle-ci à une broche de l'ARDUINO (D2 ou D3) et programmer l'alarme du RTC pour réveiller l'ARDUINO à une heure donnée.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.