[TUTO SIOC] La fonction TIMER
![Message Message](./styles/prosilver/imageset/icon_post_target.gif)
et rebonjour ! tonton Mameloose a la rescousse !
aujourd'hui petite explication de la fonction TIMER pratique pour reguler la vitesse d'une servo par exemple ...
en gros la fonction timer permet d'assigner une valeur mais dans le temps que l'ont veux .... (hum pas très clair tout ca ...)
exemple :
j'ai une servo d'indication de volet par exemple .... dans un code classique comme celui qui suit j'ai declaré la variable de position volet ainsi que ma servo :
![Image](http://i86.servimg.com/u/f86/13/46/73/71/a10.jpg)
voila donc maintenant les valeurs de positions volet pour un cessna par exemple sont :
0=0
10=5475
20=10907
maintenant si je veux que ma servo soit synchronisée avec mes volet je releve les positions de ma servo en la bougeant avec sioc monitor
jobtient pour exemple
servo 0=0
servo 10=256
servo 20=345
voila donc bien sur nimporte qui assignerai la fonction IF de cette maniere :
![Image](http://i86.servimg.com/u/f86/13/46/73/71/b10.jpg)
MAIS UN PROBLEME SURVIENT !
la servo bouge beaucoup trop vite et ce n'est pas realiste !!
donc pour reguler cette vitesse on utilise la fonction TIMER
elle se definit comme ceci :
![Image](http://i86.servimg.com/u/f86/13/46/73/71/c10.jpg)
donc pour un timer on renseigne notre variable qui prendra tel valeur de tant en tant a chaque impulsion de tant de centieme de seconde
en gros au lieu d'aller de 0 a volet 10 en une fraction de seconde elle mettera environ 25 secondes ! c'est plus realiste et plus fluide !
on peux bien sur changer le temps en centieme de seconde au lieu de 10 si je met 100 alors chaque impulsion sera de 10 seconde !
donc pour aller de zero a 256 ma servo mettera 256 secondes a y aller ! (c'est beaucoup trop long bien sur mais c'est pour lexemple)
voila ducoup pour le code ca donne cela :
![Image](http://i86.servimg.com/u/f86/13/46/73/71/e10.jpg)
BON une expliquation s'impose ....
ici le code va dans les deux sens
un sens positif et un sens negatif
donc si la valeurs des positions volet augmente alors la servo incremente de 1en 1 toutes les 0.1 seconde
et a l'inverse si la valeur volet diminue alors on decremente de -1 en -1
![Image](http://i86.servimg.com/u/f86/13/46/73/71/e11.jpg)
ici en partie 1 l'incrementation
et en partie 2 la decrementation
voila et le principe et le meme pour des valeurs de volet plus grandes comme sur un 737 par exemple et on peux changer le temps pour chaque position !
voila la fonction Timer est pratique egalement pour fabriquer un chronometre ou ajouter du temps entre des actions de variable quelconque .....
aujourd'hui petite explication de la fonction TIMER pratique pour reguler la vitesse d'une servo par exemple ...
en gros la fonction timer permet d'assigner une valeur mais dans le temps que l'ont veux .... (hum pas très clair tout ca ...)
exemple :
j'ai une servo d'indication de volet par exemple .... dans un code classique comme celui qui suit j'ai declaré la variable de position volet ainsi que ma servo :
![Image](http://i86.servimg.com/u/f86/13/46/73/71/a10.jpg)
voila donc maintenant les valeurs de positions volet pour un cessna par exemple sont :
0=0
10=5475
20=10907
maintenant si je veux que ma servo soit synchronisée avec mes volet je releve les positions de ma servo en la bougeant avec sioc monitor
jobtient pour exemple
servo 0=0
servo 10=256
servo 20=345
voila donc bien sur nimporte qui assignerai la fonction IF de cette maniere :
![Image](http://i86.servimg.com/u/f86/13/46/73/71/b10.jpg)
MAIS UN PROBLEME SURVIENT !
la servo bouge beaucoup trop vite et ce n'est pas realiste !!
donc pour reguler cette vitesse on utilise la fonction TIMER
elle se definit comme ceci :
![Image](http://i86.servimg.com/u/f86/13/46/73/71/c10.jpg)
donc pour un timer on renseigne notre variable qui prendra tel valeur de tant en tant a chaque impulsion de tant de centieme de seconde
en gros au lieu d'aller de 0 a volet 10 en une fraction de seconde elle mettera environ 25 secondes ! c'est plus realiste et plus fluide !
on peux bien sur changer le temps en centieme de seconde au lieu de 10 si je met 100 alors chaque impulsion sera de 10 seconde !
donc pour aller de zero a 256 ma servo mettera 256 secondes a y aller ! (c'est beaucoup trop long bien sur mais c'est pour lexemple)
voila ducoup pour le code ca donne cela :
![Image](http://i86.servimg.com/u/f86/13/46/73/71/e10.jpg)
BON une expliquation s'impose ....
ici le code va dans les deux sens
un sens positif et un sens negatif
donc si la valeurs des positions volet augmente alors la servo incremente de 1en 1 toutes les 0.1 seconde
et a l'inverse si la valeur volet diminue alors on decremente de -1 en -1
![Image](http://i86.servimg.com/u/f86/13/46/73/71/e11.jpg)
ici en partie 1 l'incrementation
et en partie 2 la decrementation
voila et le principe et le meme pour des valeurs de volet plus grandes comme sur un 737 par exemple et on peux changer le temps pour chaque position !
voila la fonction Timer est pratique egalement pour fabriquer un chronometre ou ajouter du temps entre des actions de variable quelconque .....