Cours 02 - Rappel Arduino¶
Plan de leçon¶
- La fonction
millis() - Délai sans
delay()
La fonction millis()¶
- La fonction
millis()retourne le nombre de millisecondes depuis le démarrage de la carte Arduino. Cette fonction est utile pour gérer différents délais dans un programme. - Le type retourné par la fonction
millis()estunsigned long. Ce type est un entier non signé sur 32 bits.- Il peut donc contenir des valeurs entre 0 et 4 294 967 295. (2^32 - 1)
Note
Personnellement, j’utilise principalement cette fonction une seule fois au début de la boucle pour enregistrer la valeur dans une variable. Ensuite, je passe la variable dans mes fonctions qui gèrent les délais.
Question : Après combien de jours, le compteur va recommencer?
Réponse
Environ 50 jours
\(\frac{4294967295}{(1000 * 60 * 60 * 24)} = 49.7 jours\)
Exemple pour afficher le temps depuis le démarrage¶

Délai sans delay()¶
- La fonction
delay()est pratique pour gérer des délais dans un programme. Cependant, elle bloque l’exécution du programme pendant le délai. Il est donc impossible de faire autre chose pendant ce temps. - Par exemple, si on voulait faire clignoter un DEL, mais que l’on puisse lire un bouton pendant la pause, ça ne fonctionnerait pas.
- En gros, je compare le temps actuel avec la dernière fois qu’il a été comparé
- Il faut 3 variables par action (fonction) que l'on désire effectuer
currentTime<-- Temps actuellastTime<-- Variable statique pour sauvegarder le temps de la dernière exécution de l'action.rate<-- Variable ou constante pour déterminer le délai entre les actions.
Exemple pour clignoter un DEL sans delay()¶

Résumé¶
Important : Comprendre ce mécanisme est primordial pour pouvoir développer des applications qui nécessitent de réaliser des tâches simultanées.
- On peut utiliser cette méthode pour ensuite faire d’autres actions sans bloquer le programme
- Par exemple
- Envoyer de l’information à l’ordinateur à toutes les X secondes
- Lire l’état des roues d'un robot
- Lire la distance d’un capteur
- Etc.
Note
La simultanéité est une illusion. Le programme exécute les actions l’une après l’autre, mais il le fait si rapidement que l’on a l’impression que tout est fait en même temps.
Pour en savoir plus sur le concept du Round-Robin, vous pouvez lire cet article Wikipédia.