Le Programmateur Horaire nouveau est arrivé

Bonjour,
Cette nouvelle version totalement refondue permet de mettre en route et d'arrêter jusqu'à 6 appareils électriques selon des plages horaires prédéfinies pour chacun des appareils.
Suite aux suggestions qui nous ont été faites, la grande nouveauté est l'utilisation du KeyPad du Shielkd LCD pour la mise à jour de l'heure du DS 3231, de la date et des plages horaires.
Le prototype décrit pilote 4 voies, cependant il peut être facilement
étendu à 6 voies en apportant une modification mineure au programme et en ajoutant une carte 2 relais.
On trouvera le dossier complet à cette adresse :

Le programme a été écrit de telle sorte que l'on puisse récupérer le module mise à l'heure du DS3231 et ses variables pour l'utiliser dans une autre application.
Cordialement

1 Like

bonjour,
merci pour votre partage, beau travail.
est-il possible de programmer plusieurs plages horaires par voie/24 heures ?

Merci

hello
bravo pour votre travail
j'ai joué un peu avec votre prg
j'ai étendu à 6 canaux, et je vais en mettre 8 ( ma platine à 8 relais, alors...)
mais comme vous l'annonciez, tout était prêt pour 6 canaux.

j'ai modifié la partie saisie des heures ( dans la mise à l'heure de l'horloge et dans le réglage des plages horaires).

je trouvais plus agréable d'avoir un passage : dans le cas de l’incrémentation, du max à 0 et dans le cas de la décrémentation de 0 à max

lorsque l'on est à 55 et que l'on veut 2, il est possible d'incrémenter et d'avoir 55,56,57,58,59,0,1,2.

je tiens à votre dispo votre prg modifié

en tous cas, merci et encore bravo pour votre travail et votre sens du partage

Bonjour Elektrax,
Merci pour vos propos, c'est encourageant de voir que le partage est apprécié.
Pour répondre à votre question je vous propose une astuce qui pourrait convenir. Par exemple, on souhaite alimenter un appareil durant deux plages horaires différentes. Si la voie choisie est la 1, il suffit de réunir les contacts des relais 1 et 2 (cela revient à un "0U" logique) au même appareil. Dès lors il se mettra en route et s'arrêtera selon la programmation horaire de la voie 1 puis fera de même pour la programmation horaire de la voie 2.
Toutefois cela présente un inconvénient, celui de réduire le nombre de voies disponibles, à la limite on pourrait prévoir 6 plages horaires pour un seul appareil.
En espérant que cela vous sera utile.
Cordialement

Bonjour Edison Member,
Cela fait grand plaisir de voir que le partage est apprécié. Je ne suis pas un "fana" des citations, mais celle-ci me plait assez : "Une chose non partagée est une chose morte"…
Je suis particulièrement heureux de voir que vous avez procédé à un enrichissement du programme et c'est très volontiers que j'en serais destinataire.
Quant à l'extension à 8 voies, je vous fais part de ce que j'ai pu constater sur mon prototype : utiliser les broches 1 et 2 ont paralysé la liaison série avec le PC, la broche 13 émet une série d'impulsions à chaque démarrage de la carte. En conséquence seules les broches A1 et 14 semblent disponibles.
Cordialement

bonjour,
Merci, en effet je n'ai pas besoin de plus de 2 canaux, 2 ou 3 plages horaires par canal seraient suffisantes

j'avoue que je n'ai pas fais de tests avec D13

par contre seule A1 est dispo car 14 est A0 et elle lit les BP.

donc s'il faut exclure D13, il reste la possibilité de prendre une carte avec A6 et A7

mais ces deux entrées supplémentaires ne peuvent être qu'analogiques. en conséquence, il faudrait transférer la lecture des BP sur A6 ou A7 ce qui permettrait de récupérer A0 et A1 pour faire les voies 7 et 8.
donc supprimer la pinoche du shield LCD qui entre dans A0 de l'arduino et mettre un fil entre A7 ( par exemple) et l'ancienne broche du shield qui allait sur A0.

je vous joint votre prg modifié en 8 voies et 4 plages horaires par voie.
(j'insiste sur le mot votre car c'est bien de votre travail dont il s'agit)

du coup, il est possible de réduire le prg à 6 voies et plus de problème de câblage et pas besoin de platine avec A6, A7
ou plus simplement de ne pas câbler les sorties au dessus de 6. le prg les traitera, mais c'est sans importance.

edit: je viens de changer le prg mais 1 personne avait déjà chargé le précédent.
le bon est bien là, il y avait une erreur de positionnement du curseur du LCD.

j'ai du inverser les cde des relais et il y avait un bug dans la dernière partie.

je confirme le bagottage de D13 à la fin du televersement au moment du départ du prg
D13 est passé en voie 8

programmateur_horaire_Multi_8_voies.zip (4.98 KB)

Bonjour dfgh,
Je viens de lire avec beaucoup d'intérêt votre dernier message. Nul doute que je vais m'empresser de tester ce programme.
Un grand merci pour votre contribution.
Cordialement

hello, finalement pour mon besoin actuel, j'ai remodifié le prg pour n'avoir qu'une seule voie mais avec 32 plages horaires

ProgrammateurHoraire1voie_32plages_ok.zip (3.25 KB)

IMPORTANT
Bonjour à tous,
A l'usage, un disfonctionnement est apparu. Il se produit parfois lorsque plusieurs voies sont activées simultanément. Le programme a été revu et il est disponible à cette adresse :

Cordialement

Bonjour,

J'aimerais utiliser votre programme pour un montage similaire mais voilà, j'ai une erreur de compilation voir ci-après:

Arduino : 1.8.0 (Windows 7), Carte : "Arduino/Genuino Uno"

ProgrammateurHoraire_Nouveau_Rev_1:5: error: 'RTC_DS3231' does not name a type

RTC_DS3231 RTC;

^

C:\Program Files (x86)\Arduino\Programmateur horaire\ProgrammateurHoraire_Nouveau_Rev_1\ProgrammateurHoraire_Nouveau_Rev_1.ino: In function 'void setup()':

ProgrammateurHoraire_Nouveau_Rev_1:28: error: 'RTC' was not declared in this scope

RTC.begin();

^

C:\Program Files (x86)\Arduino\Programmateur horaire\ProgrammateurHoraire_Nouveau_Rev_1\ProgrammateurHoraire_Nouveau_Rev_1.ino: In function 'void loop()':

ProgrammateurHoraire_Nouveau_Rev_1:188: error: 'RTC' was not declared in this scope

DateTime now = RTC.now();

^

exit status 1
'RTC_DS3231' does not name a type

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Avez-vous une idée ?

hello
@sweetohm: peux tu nous dire quel était ce bug ?

pour l'erreur compilation RTC, il faut voir dans la liste des messages de compilation quelle "library" est utilisée :
"Utilisation de la bibliothèque RTClib-master prise dans le dossier : C:\Program Files\Arduino\libraries\RTClib-master (legacy)"
j'ai du ajouter include SPI.h, pour la compilation sans erreur avec IDE 1.6.4
c'est parfois le pblme avec arduino : suivant les versions IDE, les changements generent des erreurs
depuis versions 0.22 puis 1.0. puis 1.6.x, etc..
pour les biblios : mises a jour pour quel IDE, sans compter que je ne sais pas quelles sont les biblios standard installées par l'IDE et celles que j'ai ajoutées ...
pour les projets partagées, il serait utile d'ajouter en remarque dans le croquis : l'origine des biblios surtout si ce ne sont pas celles installées par l'ide et la version IDE utilisée

Bonjour,

Suivant les conseils de elektrax j'ai ajouté #include <SPI.h>.
Mais j'ai toujours la même erreur (voir ci-dessous), je suis sous IDE 1.8.3

Arduino : 1.8.3 (Windows 7), Carte : "Arduino/Genuino Uno"

ProgrammateurHoraireV2:6: error: 'RTC_DS3231' does not name a type

RTC_DS3231 RTC;

^

E:\TEMP\ProgrammateurHoraireV2\ProgrammateurHoraireV2.ino: In function 'void setup()':

ProgrammateurHoraireV2:28: error: 'RTC' was not declared in this scope

RTC.begin();

^

E:\TEMP\ProgrammateurHoraireV2\ProgrammateurHoraireV2.ino: In function 'void loop()':

ProgrammateurHoraireV2:188: error: 'RTC' was not declared in this scope

DateTime now = RTC.now();

^

Plusieurs bibliothèque trouvées pour "SPI.h"
Utilisé : C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI
Non utilisé : C:\Program Files (x86)\Arduino\libraries\SPI-master
exit status 1
'RTC_DS3231' does not name a type

Une idée ??

tu n'as peut etre pas besoin d'inclure spi.h dans ton cas
c'est ta lib RTC qui n'est pas correcte, tu n'indiques où et quelle lib RTC le compilateur va chercher
dans mon dossier "libraries" il y a 4 librairies différentes pour le ds3231
tu dois avoir celle-ci installée LIEN

Bonsoir,

Merci elektrax pour vos conseils.
J'ai installé la librairie que vous m'avez conseillé, retiré SPI.h et maintenant ça compile correctement.
Plus qu'à mettre en boite

Bonjour Electrnn2002,
Désolé d'arriver après coup. Pour ma part je pense que la bibliothèque est en cause, vous trouverez celle que j'ai utilisée à cette adresse:

Il est également( possible que le compilateur soit en cause, j'ai utilisé la version 1.6.9.
Cordialement.

Bonjour Electrnn2002,
Désolé d'arriver après coup. Pour ma part je pense que la bibliothèque est en cause, vous trouverez celle que j'ai utilisée à cette adresse:

Il est également( possible que le compilateur soit en cause, j'ai utilisé la version 1.6.9.
Cordialement.

Bonjour Digh,
Voici le problème : supposons que l'on active une voie entre 15h 20mn et 17h 35mn. Les conditions sont telles que cette voie sera désactivée entre 16h 00mn et 16h20mn. Le nouveau programme corrige ce problème.
Cordialement

hello
ok, merci