pulseIn()

[Entradas e Saídas Avançadas]

Descrição

Captura a duração de um pulso em um pino (que pode ser HIGH ou LOW). Por exemplo, se o valor HIGH é passado para a função, a função pulseIn() espera o pino ir para do estado 'LOW' para HIGH, começa a temporizar, então espera o pino ir para o estado LOW e para de temporizar. Retorna o tamanho do pulso em microssegundos ou desiste e retorna 0 se não receber nenhum pulso dentro de um tempo máximo de espera especificado.

A temporização dessa função foi determinada empiricamente e irá provavelmente mostrar erros em pulsos mais longos. funciona em pulsos de 10 microssegundos a 3 minutos de duração.

Sintaxe

pulseIn(pino, valor)

pulseIn(pino, valor, tempo_de_espera)

Parâmetros

pino: o número do pino no qual se quer capturar a duração de um pulso. (int)

valor: tipo de pulso a ser lido: pode ser HIGH ou LOW. (int)

tempo_de_espera (opcional): o número de microssegundos a se esperar pelo começo do pulso; o padrão é um segundo. (unsigned long)

Retorna

A duração do pulso (em microssegundos) ou 0 se nenhum pulso começar antes de se esgotar o tempo de espera (unsigned long).

Código de Exemplo

O exemplo abaixo calcula a duração de um pulso no pino 7.

int pino = 7;              //pino para a entrada do pulso
unsigned long duration;   //variável para guardar a duração do pulso

void setup()
{
  pinMode(pino, INPUT);    // pino 7 como entrada
}

void loop()
{
  duration = pulseIn(pino, HIGH); //mede a duração de um pulso HIGH no pino 7
}

Ver Também

  • LANGUAGE noTone()

  • LANGUAGE pulseInLong()

  • LANGUAGE shiftIn()

  • LANGUAGE shiftOut()

  • LANGUAGE tone()