Activation d'une fonction durant un temps défini et/ou variable

Article écrit par CoyotteDundee en Mai 2020

Présentation


Il arrive que l'on souhaite activer une fonctionnalité durant un temps déterminé.
Pour des durées assez courtes (< 25s) , il est possible de jouer avec les paramètres des interrupteurs logiques, mais pour des durées plus longues ou si l'on souhaite les rendre paramétrables, il faut utiliser une autre tactique.
A titre d'exemple, nous allons piloter le rétro-éclairage de la radio et faire varier la durée de celui-ci (de 5s à 100s) via un slider.
Ce rétro-éclairage sera déclenché par une impulsion sur SH et restera actif pour un nombre de secondes défini par S2

Solution


Dans la solution présentée ici, nous allons utiliser deux variables globales VG1 et VG2.
VG1 sera un compteur incrémenté chaque seconde.
VG2 sera la valeur que VG1 doit dépasser pour mettre fin à l'activation de la fonctionnalité.

On commence par créer une entrée Lum(inosité) :

chrono1

... Et la courbe qui va bien :

chrono2

Ensuite...
L01: on crée un compteur avec VG1 qui est incrémenté chaque seconde.
L02: on ajoute un bistable qui mémorise la demande d'allumage et reste actif pour la durée souhaitée
L03: permet de détecter que le compteur a atteint la limite souhaitée.

chrono3

Enfin, les fonctions spéciales qui vont bien:
FS1 réinitialise le compteur.
FS2 incrémente le compteur chaque fois que L01 (chrono) devient actif
FS3 copie la valeur de S2 dans VG2 lorsque l'on démarre l'éclairage
FS4 active le retro-éclaire tant que le bistable est actif...

chrono4

Et voilà... :) On obtient très simplement des durées allant de 1 à 100 secondes.
Si des durées plus importantes devaient être nécessaires, il suffit d'augmenter la période de L01. Avec une période 2 secondes, il est déjà possible atteindre des durées supérieures à 3 minutes...(Avec une résolution de 2 secondes...)

:coyotte

Addendum


Sur la suggestion d'Olivier ZMR250 X9D+ voici un complément d'informations quant à une utilisation pratique de la fonction :

On commence par ajouter un interrupteur logique qui détecte les variations de E5:Lum :

chrono5

On ajoute une fonction logique qui va énoncer la valeur de E5:Lum à chaque fois que celle-ci varie suffisamment :

chrono6

Enfin, on ajoute un affichage de la valeur de l'entrée de E5-Lum sur une page de télémétrie :

chrono7

Ainsi, lorsque l'on modifie la consigne concernant la durée de rétro-éclairage, la nouvelle valeur est énoncée et celle-ci est visuellement contrôlable sur l'écran de la radio :

chrono8


:coyotte & Olivier ZMR250 X9D+