Go Down

Topic: Le Programmateur Horaire nouveau est arrivé (Read 2937 times) previous topic - next topic

Sweetohm

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 :

https://1drv.ms/b/s!Ai8DYCKRLbvuiBDDrNHMW7VGZItc

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

elektrax

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

Merci

dfgh

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

Sweetohm

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

Sweetohm

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

elektrax

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

dfgh

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

Sweetohm

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

dfgh

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

Sweetohm

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 :
https://1drv.ms/u/s!Ai8DYCKRLbvuiB2ggm11pHKG2MIW
Cordialement


electronn2002

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 ?

 

dfgh

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

elektrax

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


electronn2002

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 ??

elektrax

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

Go Up