pulseIn()
Description :
Lit une impulsion (HIGH ou LOW) sur une broche. Par exemple, si la valeur est haute, pulseIn() attend que la broche passe de basse à haute, démarre le chronométrage, puis attend que la broche passe à basse et arrête le chronométrage. Renvoie la durée de l’impulsion en microsecondes ou abandonne et renvoie 0 si aucune impulsion complète n’a été reçue dans le délai imparti.
La durée de cette fonction a été déterminée empiriquement et affichera probablement des erreurs pour les impulsions plus longues. Fonctionne sur des impulsions de 10 microsecondes à 3 minutes.
L’utilisation du paramètre optionnel timeout accélère l’exécution du code.
Syntaxe :
Utilisez les fonctions suivantes pour mesurer une longueur d’impulsion sur une broche spécifique :
pulseIn(pin, value) pulseIn(pin, value, timeout)
Paramètres :
La fonction admet les paramètres suivants :
- pin : le numéro de la broche Arduino sur laquelle vous souhaitez lire l’impulsion. Types de données autorisés : int.
- value : type d’impulsion à lire : HIGH ou LOW. Types de données autorisés : int.
- timeout (facultatif) : le nombre de microsecondes à attendre avant le début de l’impulsion ; la valeur par défaut est d’une seconde. Types de données autorisés : unsigned long.
Retours :
La fonction renvoie la durée de l’impulsion (en microsecondes) ou 0 si aucune impulsion n’a démarré avant le délai d’expiration. Type de données : unsigned long.
Exemple de code :
L’exemple imprime la durée d’une impulsion sur la broche 7 en microsecondes.
int pin = D1; unsigned long duration; void setup() { Serial.begin(9600); pinMode(pin, INPUT); } void loop() { duration = pulseIn(pin, HIGH); Serial.println(duration); }
Source : https://docs.arduino.cc/language-reference/en/functions/advanced-io/pulseIn/