pulseIn()

[I/O Avanzato]

Descrizione

Legge un impulso (sia di tipo HIGH oppure LOW) su un pin. Per esempio, se valore = HIGH, pulseIn() aspetta che il pin vada nello stato HIGH, incomincia a contare, quindi aspetta che il pin vada nello stato LOW e smette di contare. Restituisce la durata dell’impulso in microsecondi. Si interrompe e restituisce 0 se nessun impulso parte entro il timeout specificato.

La temporizzazione di questa funzione è stata determinata empiricamente e probabilmente produrrà errori con gli impulsi più lunghi. Funziona sugli impulsi di lunghezza compresa tra 10 microsecondi e 3 minuti.

Sintassi

pulseIn(pin, valore)

pulseIn(pin, valore, timeout)

Parametri

pin: il numero del pin dal quale vuoi leggere l’impulso. (int)

valore: il tipo di impulso da leggere: può essere HIGH oppure LOW. (int)

timeout (opzionale): il numero dei microsecondi in cui aspettare che l’impulso parta; Il valore predefinito è di un secondo ( unsigned long )

Restituisce

la durata dell’impulso ( in microsecondi ) oppure 0 se nessun impulso è partito prima del timeout ( unsigned long )

Codice di esempio

Questo programma di esempio calcola il tempo di durata di un impulso sul pin 7.

int pin = 7;
unsigned long duration;

void setup()
{
  pinMode(pin, INPUT);
}

void loop()
{
  duration = pulseIn(pin, HIGH);
}
  • LANGUAGE noTone()

  • LANGUAGE pulseInLong()

  • LANGUAGE shiftIn()

  • LANGUAGE shiftOut()

  • LANGUAGE tone()