Eu tenho usado a pulseIn()
função para processar a codificação de dados binários baseada em PWM. Funciona bem para distinguir pulsos com comprimentos significativamente diferentes, por exemplo, 500us vs. 1500us. Isso o torna mais do que suficiente para manipular controles remotos de IR típicos.
No entanto, quero criar meu próprio sistema de infravermelho, que pode usar mais de 2 comprimentos de pulso, para que a transferência de dados possa ocorrer mais rapidamente. Idealmente, eu gostaria de usar 8 comprimentos de pulso diferentes para codificação octal (por exemplo, 200us, 400us, 600us, etc.).
Notei variações bastante significativas nos valores retornados por pulseIn()
(+/- 10%). Espero que pelo menos parte seja introduzida pelos módulos transmissor e receptor de infravermelho, mas não tenho equipamento suficiente para verificar isso.
Supondo que eu possa atenuar esse erro externo, é pulseIn()
provável que seja preciso o suficiente para distinguir pulsos semelhantes?