|

delay()


Description :

Met le programme en pause pendant la durée (en millisecondes) spécifiée comme paramètre.

Syntaxe :

Utilisez la fonction suivante pour démarrer une pause d’un temps donné dans le code :

delay(ms)

Paramètres :

La fonction admet le paramètre suivant :

  • ms : nombre de millisecondes de pause. Types de données autorisés : unsigned long.

Retours :

Cette fonction ne renvoie rien.

Exemple de code :

Le code met le programme en pause pendant une seconde avant de basculer la broche de sortie.

int ledPin = 13;              // LED connectée à la broche numérique 13

void setup() {
  pinMode(ledPin, OUTPUT);    // définit la broche numérique comme sortie
}

void loop() {
  digitalWrite(ledPin, HIGH); // allume la LED
  delay(1000);                // attend une seconde (1000 ms)
  digitalWrite(ledPin, LOW);  // éteint la LED
  delay(1000);                // attend une seconde (1000 ms)
}

Remarques et avertissements :

Bien qu’il soit facile de créer une LED clignotante avec la fonction delay(), et que de nombreux croquis utilisent de courts délais pour des tâches telles que l’anti-rebond des commutateurs, l’utilisation de delay() dans un croquis présente des inconvénients majeurs. Aucune autre lecture de capteurs, aucun calcul mathématique ni aucune manipulation de broche ne peuvent avoir lieu pendant la fonction delay ; elle interrompt donc la plupart des autres activités.

Pour d’autres approches du contrôle du timing, consultez le croquis « Blink Without Delay », qui effectue une boucle en interrogeant la fonction millis() jusqu’à ce qu’un temps suffisant se soit écoulé. Les programmeurs expérimentés évitent généralement d’utiliser delay() pour chronométrer des événements de plus de 10 millisecondes, sauf si le croquis Arduino est simple.

Certains événements se produisent lorsque la fonction delay() contrôle la puce, car elle ne désactive pas les interruptions. La communication série sur la broche RX est enregistrée. Les valeurs PWM (analogWrite) et les états des broches sont conservés, et les interruptions (attachInterrupt) fonctionnent normalement.


Source : https://docs.arduino.cc/language-reference/en/functions/time/delay/

Publications similaires

Laisser un commentaire

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