Main

Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]

delay(ms)


Description

Réalise une pause dans l'exécution du programme pour la durée (en millisecondes) indiquée en paramètre. (=Pour mémoire, il y a 1000 millisecondes dans une seconde...!

Syntaxe

delay (ms);

Paramètres

  • ms (unsigned long): le nombre de millisecondes que dure la pause

Valeur renvoyée

Aucune

Exemple

int ledPin = 13;                 // Une LED est connectée à la broche 13

void setup() // la fonction setup() est exécutée 1 seule fois
{
  pinMode(ledPin, OUTPUT);      // met la broche numérique en sortie
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // allume la LED
  delay(1000);                  // attendre 1 seconde
  digitalWrite(ledPin, LOW);    // éteint la LED
  delay(1000);                  // attendre une seconde
} // la fonction loop() boucle sans fin
 

Avertissement

Bien qu'il soit facile de faire clignoter une LED avec l'instruction delay(), et de nombreux programmes utilisent de courtes pauses pour de nombreuses tâches telles que la commutation, l'utilisation de l'instruction delay() a des inconvénients non négligeables. Aucune autre lecture de valeur sur un capteur, opération mathématique ou manipulation de bits ne peut avoir lieu durant une instruction delay(), et en effet, cela fait stopper toute autre activité le temps de l'exécution de la pause. Pour une autre approche du contrôle des temporisations, voir l'instruction millis() et les programmes d'exemples cités à la suite. Les programmeurs avancés évitent habituellement d'utiliser l'instruction delay() pour des pauses supérieures à 10 millisecondes, à moins que le programme Arduino ne soit très simple.

Certaines chose se font cependant même lorsque l'instruction delay() est exécutée et contrôle le microcontrôleur ATmega, car l'instruction delay() ne désactive pas les interruptions. Les communications série qui arrivent sur la broche RX sont prises en compte, la génération d'impulsion PWM (analogWrite) et l'état des broches stables sont maintenus, et les interruptions fonctionnent comme elles le doivent.

Commentaires utilisateurs

  • Il semble qu'au contraire de ce que dit la référence officielle, les interruptions sont stoppées par la fonction delay(), de même que par les fonctions millis() et micros() (cf fichier wiring.cpp) (Note faite pour la version Arduino 18). La fonction delayMicroseconds() ne stoppe pas les interruptions à priori.
  • cette fonction est basée sur le Timer 0

Voir également


Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino ou à l'adresse suivante : support_at_mon-club-elec_point_fr

Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010-2012) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.