Utilisation de la fonction millis Arduino

La fonction millis dans Arduino joue un rôle important lors de l’écriture d’un programme multi-tâches. Il existe de nombreux projets Arduino publiés sur notre site Web qui utilisent la fonction millis(), où vous devez décompter le temps. Considérons l’application de la commande millis() pour le contrôle du temps dans la programmation des microcontrôleurs de la famille Arduino et comment utiliser millis sans delay dans un programme.


Pour cette activité, nous aurons besoin:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • LED et résistance
  • breadboard
  • fils de connexion

Matériel supplémentaire sur ce sujet:

  1. Fonction delay et delayMicroseconds Arduino
  2. Minuterie de compte à rebours sur Arduino
  3. Horloge sur afficheur LCD sans module RTC

Description de la fonction millis Arduino

La fonction millis du langage de programmation Arduino IDE renvoie le nombre de millisecondes écoulées depuis le démarrage du programme. Le compteur de temps est remis à zéro lorsque la valeur de la variable unsigned long déborde (après environ 50 jours). La fonction millis de l’Arduino permet de rendre le microcontrôleur multitâche, car l’exécution du programme ne s’arrête pas et d’autres opérations peuvent être effectuées en parallèle.

Gérer le temps via la fonction millis Arduino

Le programme Arduino pour une LED clignotante
Le programme Arduino pour une LED clignotante

Lorsque vous utilisez la fonction delay dans un programme, l’exécution de toutes les commandes est arrêtée pendant un nombre donné de millisecondes. C’est la principale différence entre millis() et delay(). Lorsque les capteurs sont connectés, il est nécessaire d’obtenir des données en continu, donc la fonction delay est remplacée par millis. Dans l’exemple avec une LED clignotante, nous montrons comment faire un délai sans delay.

Comment utiliser le fonction millis() Arduino

unsigned long timer;
boolean ledState = 0;

void setup() {
   pinMode(13, OUTPUT);
   Serial.begin(9600);
   timer = millis();
}
 
void loop() {
   if (millis() - timer > 1000) {
      ledState=!ledState; // changer l'état de la LED
      digitalWrite(13, ledState);
      timer = millis();
   }

   Serial.print("Time: ");
   Serial.println(timer);
}

Explication du code pour utiliser le fonction millis (compteur de temps):

  1. le moniteur du port série affiche le nombre de msec écoulées depuis le début du programme.


Conclusion. La commande Arduino milis n’arrête pas l’exécution du programme, mais lance le compte à rebours à partir du début du compteur en millisecondes. En revanche, delay et delayMicroseconds arrêtent l’exécution du programme pendant un nombre spécifié de millisecondes ou de microsecondes respectivement. L’application d’un délai particulier dans un croquis de microcontrôleur Arduino dépend de la tâche à accomplir.





5 Replies to “Fonction millis() Arduino, compteur de temps”

  1. S’il vous plaît aider moi à faire mon projet. Je vous explique. Lorsqu’on appuie une fois sur un bouton poussoir la led clignote une fois, lorsqu’on appuie deux fois sur le bouton poussoir la led clignote deux fois. C’est tout. Merci d’avance.

  2. mon arduino R3 ne reconnait pas l’instruction boolean?bizarre ,bool est reconnu est ce la même fonction?
    merci

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.