He estado usando la pulseIn()
función para procesar la codificación de datos binarios basada en PWM. Funciona bien para distinguir pulsos que tienen longitudes significativamente diferentes, por ejemplo, 500us vs. 1500us. Eso lo hace más que suficiente para manejar controles remotos IR típicos.
Sin embargo, quiero hacer mi propio sistema IR que pueda usar más de 2 longitudes de pulso, para que la transferencia de datos pueda ocurrir más rápido. Idealmente, me gustaría usar 8 longitudes de pulso diferentes para la codificación octal (por ejemplo, 200us, 400us, 600us, etc.).
Sin pulseIn()
embargo, he notado variaciones bastante significativas en los valores devueltos (+/- 10%). Espero que al menos una parte sea introducida por los módulos de transmisor y receptor IR, pero no tengo el equipo lo suficientemente bueno como para verificar eso.
Suponiendo que pueda mitigar ese error externo, ¿es pulseIn()
probable que sea lo suficientemente preciso como para distinguir pulsos similares?