Difference entre delay et millis (tutoriel arduino).

Difference entre delay et millis (tutoriel arduino)

Nous venons de voir nos deux premiers programmes servant à faire clignoter une LED, qui sont les exemples blink et blinkWithoutDelay. Au cours de ceux ci, nous avons parlé de la différence entre les fonctions delay() et millis(). Et bien dans cette courte vidéo, j’ai légérement modifié les programmes d’exemple en y ajoutant un bouton qui allume une autre LED afin que vous puissiez vous rendre compte par vous même du « problème » que pose la fonction delay().

difference delay millis

Rappel du problème avec la fonction delay().

Nous avons donc vu que la fonction delay mettait en pause l’intégralité du programme durant son exécution et que par conséquent il était possible de rater des « événements importants » à cause de cela (si vous les avez manqués retrouvez l’article sur blink ici et celui sur blinkwithoutdelay ici). Pour remédier à cela, nous avons vu avec blinkWithoutDelay que nous pouvions utiliser une fonction comptant le temps depuis lequel le programme est exécute (en millisecondes) nommé millis, qui à force de mémorisations et comparaisons, arrivait au même résultat que blink (avec delay) mais sans stopper le programme.

Alors voici une courte vidéo afin de vous montrer concrètement l’impact que peut avoir cette fonction delay().

J’ai repris les codes des exemple blink et blinkWithoutDelay auxquelles j’ai ajouté l’allumage d’une LED via un bouton poussoir au début de la boucle loop().

Vous pourrez alors constater l’effet catastrophique que peut avoir delay() sur l’exécution d’un programme. Cela dit ne tombait pas dans l’excès en bannissant celle ci. Vous vous doutez bien que si elle est encore d’actualité c’est que à une utilité bien précise, et notamment lorsque l’on à besoin de faire certaines acquisitions de capteur (température, ultrason…) afin que le programme puisse pleinement leur laisser le temps de faire leurs diverses conversions.

Codes blink et blinkWithoutDelay modifiés.

Voici le code modifié de l’exemple blink avec la fonction delay(), les modifications se trouvent lignes 22, 23 et 34:

Puis le code blinkWithoutDelay avec ces même ajouts, les modifiations se trouvent lignes 42, 43 et 53:

J’espère que cette vidéo vous aura parlée, vous pouvez passer sur le forum afin d’y poser vos questions et autres renseignements.

Bonne vidéo!


Liens internes:

Lien du forum.

Exemple arduino blink et la fonction delay.

Exemple arduino blinkWithoutDelay et la fonction millis.

Liens externes:

Arduino: fonction delay.

Arduino: fonction millis.


Mots clé: difference delay millis, arduino fonction delay, arduino fonction millis, comparaison delay millis.

About the Author: maxpeigne