Outils pour utilisateurs

Outils du site


start:arduino:millis

Ceci est une ancienne révision du document !


Fonctions millis

Gérer le temps avec la fonction millis()

1. Introduction :

Lors de la découverte de la programmation de l’Arduino, la principale fonction que nous apprenons pour créer des temporisations est la fonction delay().

Hors celle-ci a ses limites car elle met en pause la suite du code et cela peut vite devenir contraignant lorsque l’on souhaite exécuter plusieurs tâches à la fois.

Pour palier ce problème, une solution est possible : utiliser la fonction millis().

Dans ce tutorial nous allons découvrir comment utiliser celle-ci pour remplacer la fonction delay() dans différentes applications avec différents exemples pour mieux comprendre la fonction millis().

2. Description de la fonction millis()

millis() est un compteur qui est mis à jour en permanence et qui renvoie une valeur qui va représenter le nombre de millisecondes écoulées depuis la mise sous tension de la carte.

Ce compteur millis() est automatiquement incrémenté par une interruption attachée au temporisateur 0. La valeur qu’il renvoie augmente constamment sans être influencée par le code de l’utilisateur.

La fonction millis() renvoie une variable de type non signée « unsigned long ».

Vu que la valeur maximale de ce type de variable est de 4,294,967,295, elle se réinitialisera aux bouts de 49 jours.

Voici un petit morceau de code pour afficher ce compteur dans la console de l’IDE Arduino.

millis.ino
// Déclaration variable ValeurMillis qui va servir à stocker une valeur au format unsigned long
unsigned long ValeurMillis;
 
void setup() {
  // ouvre le port série à 9600 bps
  Serial.begin(9600);
}
 
void loop() {
  // La variable ValeurMillis prend la valeur de millis()
  ValeurMillis = millis();
  // imprimer sous forme de nombre décimal codé en ASCII - identique à "DEC" la valeur de ValeurMillis.
  // puis ajoute le retour à la ligne avec "println"
  Serial.println(ValeurMillis);
}

3. Exemples 3.1 Définir différents intervalles de temps

Imaginons que nous avons plutôt besoin d’allumer la LED que 100 ms mais avec un intervalle de 1 seconde.

Voici un petit exemple de code que vous pouvez utiliser :

/home/chanteri/www/fablab37110/data/attic/start/arduino/millis.1741679416.txt.gz · Dernière modification : 2025/03/11 08:50 de admin