Temporisation commande signaux

Temporisation commande signaux

Messagepar loco28 » 30 Novembre 2017, 23:27

Bonsoir,

Comme pour les commandes d'aiguillages, est-il possible de mettre une temporisation dans les commandes de signaux?
loco28
 
Messages: 215
Inscrit le: 05 Octobre 2016, 16:02
Localisation: Eure et Loir

Re: Temporisation commande signaux

Messagepar jpp38 » 01 Décembre 2017, 08:22

Bonjour,

Non.
Mais au fait, quel en serait l'intérêt?

JP
jpp38
 
Messages: 11187
Inscrit le: 31 Mars 2009, 10:15
Localisation: Grenoble (Isère / Rhône Alpes)

Re: Temporisation commande signaux

Messagepar loco28 » 01 Décembre 2017, 13:02

J'ai réalisé mes décodeurs d'accessoires avec un (des) ARDUINO.
Pour les commandes d'aiguillages, aucun problème.
Pour les signaux, il arrive que l'ARDUINO "loupe" la 2ème adresse de signal, probablement du au temps de traitement de la 1ère adresse.
Rien de grave, il faut juste que je regarde de plus près l'architecture de mes programmes

Une question en passant: est-il possible de fermer un signal par une action extérieure?
loco28
 
Messages: 215
Inscrit le: 05 Octobre 2016, 16:02
Localisation: Eure et Loir

Re: Temporisation commande signaux

Messagepar loco28 » 01 Décembre 2017, 18:12

Par contre, je voudrais bien savoir dans quel ordre CDM envoi les ordres pour les signaux

Par exemple, si le train vient de franchir le signal N, N passe au rouge, N-1 au jaune et N-2 au vert: dans quel ordre les commandes sont-elles envoyées?
loco28
 
Messages: 215
Inscrit le: 05 Octobre 2016, 16:02
Localisation: Eure et Loir

Re: Temporisation commande signaux

Messagepar gily » 01 Décembre 2017, 20:48

bonjour loco.

Je ne pourrais pas répondre à toutes tes questions mais pour savoir s'il est possible de fermer un signal par une action extérieure, la réponse est non.

Quant à ton arduino qui "loupe" des adressages, je ne connais bien sur par ton programme mais en général, sur un système
à microcontrôleur (donc comme les arduino), pour réagir face à des évènements rapides, rien de tel que de passer par des interruptions, empiler les évènements,
puis les dépiler au fur et a mesure du traitement.

bon courage
gily
 
Messages: 1135
Inscrit le: 25 Juillet 2014, 14:32
Localisation: nord

Re: Temporisation commande signaux

Messagepar CC72000 » 01 Décembre 2017, 21:06

Bonsoir,

loco28 a écrit:Par exemple, si le train vient de franchir le signal N, N passe au rouge, N-1 au jaune et N-2 au vert: dans quel ordre les commandes sont-elles envoyées?


Non, ce n'est pas tout à fait comme cela que ça fonctionne.

Avant de franchir le signal N qui est au vert, le signal N-1 est rouge, N-2 jaune et N-3 vert.

- Quand la tête du train franchit le signal N, seul le signal N passe au rouge.
- Ensuite quand la queue du train va franchir le signal N, le signal N-1 passe du rouge au jaune et N-2 du jaune au vert.

Donc c'est quand la queue du train franchit le signal que 2 signaux changent d'état, dans quel ordre ? je laisse JP répondre.
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problème...
Michel.
CC72000
 
Messages: 3078
Inscrit le: 25 Octobre 2014, 08:30
Localisation: 21240-Talant - Dijon ( Côte d'Or / Bourgogne )

Re: Temporisation commande signaux

Messagepar loco28 » 01 Décembre 2017, 21:13

Bonsoir,

Tout a fait d'accord avec toi et du coup, je comprends mieux pourquoi j'ai vu parfois les feux fonctionner correctement. Quand le train comprend des voitures ou des wagons, sa longueur fait qu'il y a forcément un décalage entre l'envoi des ordres et là, tout se passe bien. Alors qu'en ce moment, je teste (un nouveau câblage) avec une machine seule et là, tous les ordres passent en même temps.
Je suis également d'accord avec la réponse de Gilly: il faudrait gérer avec des interruptions, mais çà, je ne maîtrise pas.
loco28
 
Messages: 215
Inscrit le: 05 Octobre 2016, 16:02
Localisation: Eure et Loir

Re: Temporisation commande signaux

Messagepar jpp38 » 02 Décembre 2017, 09:14

Bonjour,

Les signaux sont remis à jour tous les 1/10 de secondes. Mais des signaux qui changent au même moment, comme 3 signaux sur 3 cantons consécutifs, changent dans un ordre interne connu par le programme seulement. Même moi, je ne sais pas le dire... je pourrais en regardant dedans bien sûr. Mais une réalisation qui s'appuie sur ce genre de détail d'"implémentation", n'est pas saine.

Il faut vraiment que tu creuses cette question d'interruptions: dans toutes les réalisations à base de microcontrôleurs, c'est essentiel pour avoir un fonctionnement sain.
En fait, c'est le seul moyen de maîtriser les applications "temps réel".

N'hésite pas à y consacrer du temps, même si ça fait toujours un peu peur au départ. En fait, on s'y habitue très vite, et c'est vraiment du temps gagné pour la suite.

JP
jpp38
 
Messages: 11187
Inscrit le: 31 Mars 2009, 10:15
Localisation: Grenoble (Isère / Rhône Alpes)

Re: Temporisation commande signaux

Messagepar loco28 » 08 Décembre 2017, 23:40

Après pas mal de galères, j'y suis arrivé.
Dans le sous-programme qui récupère les signaux DCC et qui fonctionne en mode "interruption", j'enregistre immédiatement les valeurs (adresse et action) dans un fichier type FIFO (First IN, First Out).
Après, dans le programme principal (la "loop"), je dépile le fichier et traite les données pour déterminer quelles sorties je vais actionner. A chaque interruption, le traitement s'arrête puis reprends ensuite où il en était. Comme il y a des moments où aucune données DCC est envoyée, le fichier est régulièrement vidé et il n'y a aucun risque d'overflow.
Tous les essais faits montrent que je ne loupe plus de données.
Il me reste juste à tester un cas où même les aiguilles ne bougeaient pas toutes, à savoir un changement Voie1-Voie2 suivi d'un débranchement vers une VU, opération qui nécessite la commande de 3 aiguilles, 2 signaux (plus Jaune et Vert des cantons derrière), soit l'envoi, dans mon cas de 3 + 8 infos.
loco28
 
Messages: 215
Inscrit le: 05 Octobre 2016, 16:02
Localisation: Eure et Loir


Retourner vers Signaux, cantons, itinéraires, détecteurs

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité