Main

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

delayMicroseconds(us)


Description

Stoppe le programme pendant la durée (en microsecondes) spécifiées en paramètres. Il y a 1000 microsecondes dans une milliseconde, et un million de microsecondes dans un seconde.

Actuellement, la valeur la plus grande qui peut produire une pause précise est 16383. Ceci pourra changer dans les versions futures d'Arduino. Pour des délais plus longs que quelques milliers de microsecondes, vous devriez plutôt utiliser l'instruction delay().

Syntaxe

delayMicroseconds(us)

Paramètres

  • us: le nombre de microsecondes que doit durer la pause.

Valeur renvoyée

Aucune

Exemple


int outPin = 8;                 // utilise la broche numérique n°8

void setup()
{
  pinMode(outPin, OUTPUT);      // configure la broche en sortie
}

void loop()
{
  digitalWrite(outPin, HIGH);   // met la broche à 1 (niveau HAUT)
  delayMicroseconds(50);        // pause de 50 microsecondes
  digitalWrite(outPin, LOW);    // met la broche à 0 (niveau BAS)
  delayMicroseconds(50);        // pause de 50 microsecondes
}
 

Ce programme configure la broche 8 en sortie. Un train d'impulsion continue de 100 microsecondes de période est appliqué sur cette broche. Une LED connectée sur la broche s'allumera. Un oscilloscope est nécessaire pour visualiser l'onde ainsi produite.

Avertissements et Problèmes connus

Cette fonction fonctionne de façon très précise pour des valeurs de 3 microsecondes et plus. Nous ne pouvons pas assurer que l'instruction delayMicroseconds donnera un résultat correct pour des durées plus courtes.

Pour s'assurer d'obtenir les pauses les plus précises possibles, cette fonction désactive les interruptions durant son exécution, ce qui veut dire que certaines choses (telle que réception de donnée sur le port série, ou l'incrémentation de la valeur retournée par la fonction millis() ) ne pourront avoir lieu durant la pause. Dès lors, vous ne devrez utiliser cette fonction uniquement pour des délais très courts, et vous devrez utiliser la fonction delay() pour des pauses plus longues.

L'instruction delayMicroseconds(0) générera un délai beaucoup plus long qu'attendu (1020 µs environ), comme si on utilisait un nombre négatif comme paramètre.

Commentaires utilisateurs

  • Code spécifique qui ne fait intervenir aucun Timer et ne perturbe pas le fonctionnement des interruptions. A privilégier donc pour des pauses dans des routines d'interruption.

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.