delayMicroseconds()

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.

Valeurs Renvoyées

  • Aucune

Exemple

Exemple 1

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.

Exemple 2

Generate a 10-microsecond pulse for use in ultrasonic sensor

int trigPin = 9; // TRIG pin int echoPin = 8; // ECHO pin float duration_us, distance_cm; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { // generate a 10-microsecond pulse to TRIG pin digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration_us = pulseIn(echoPin, HIGH); // measure duration of pulse from ECHO pin distance_cm = 0.017 * duration_us; // calculate the distance // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); delay(500); }

※ Remarque:

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.

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Please note: These are Amazon affiliate links. If you buy the components through these links, We will get a commission at no extra cost to you. We appreciate it.

※ OUR MESSAGES