pulseInLong()
Descrição
pulseInLong() é uma alternativa à função pulseIn(), sendo melhor para lidar com pulsos longos e situações afetadas por interrupções.
Reads a pulse (either HIGH or LOW) on a pin. For example, if value is HIGH, pulseInLong() waits for the pin to go HIGH, starts timing, then waits for the pin to go LOW and stops timing. Returns the length of the pulse in microseconds or 0 if no complete pulse was received within the timeout.
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)
- 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.
※ 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
- Linguagem : noTone()
- Linguagem : pulseIn()
- Linguagem : shiftIn()
- Linguagem : shiftOut()
- Linguagem : tone()
- Exemplo : Arduino - Ultrasonic Sensor
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |