Activation d'une fonction durant un temps défini et/ou variable
Table des matières
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é) :
... Et la courbe qui va bien :
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.
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...
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...)
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 :
On ajoute une fonction logique qui va énoncer la valeur de E5:Lum à chaque fois que celle-ci varie suffisamment :
Enfin, on ajoute un affichage de la valeur de l'entrée de E5-Lum sur une page de télémétrie :
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 :
& Olivier ZMR250 X9D+