pulseInLong()

Descrição

pulseInLong() é uma alternativa à função pulseIn(), sendo melhor para lidar com pulsos longos e situações afetadas por interrupções.

Lê um pulso (ALTO ou BAIXO) em um pino. Por exemplo, se o valor for HIGH, pulseInLong () espera que o pino vá HIGH, começa a cronometrar e, em seguida, espera que o pino vá LOW e pára de cronometrar. Retorna a duração do pulso em microssegundos ou 0 se nenhum pulso completo foi recebido dentro do tempo limite.

A temporização dessa função foi determinada empiricamente e irá provavelmente mostrar erros em pulsos mais curtos. Funciona em pulsos de 10 microssegundos a 3 minutos de duração. Por favor note que se a função for configurada para recebr um pulso HIGH e o pino já estiver no estado HIGH quando a função for chamada, essa irá primeiro esperar o pino ir para estado LOW e então HIGH antes de começar a contar. Essa função pode ser utilizada apenas quando interrupções estiverem ativadas. Além disso, resoluções maiores são alcançadas com intervalos maiores.

Sintaxe

pulseInLong(pino, valor)

pulseInLong(pino, valor, tempo_de_espera)

Parâmetros

  • pino: o número do pino do Arduino 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 imprime na porta serial a duração de um pulso no pino 7.

int pino = 7; // pino para a entrada do pulso unsigned long duracao; // variável para guardar a duração do pulso void setup() { Serial.begin(9600); pinMode(pino, INPUT); } void loop() { duracao = pulseInLong(pino, HIGH); Serial.println(duracao); }

※ Notas e Advertências:

Essa função depende da função micros(), então não pode ser usada quando interrupções estiverem desativadas com noInterrupts().

Ver Também

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