J'utilise la pulseIn()
fonction pour traiter l'encodage de données binaires basé sur PWM. Il fonctionne bien pour distinguer les impulsions de longueurs significativement différentes, par exemple 500us contre 1500us. Cela le rend plus que suffisant pour gérer des télécommandes IR typiques.
Cependant, je veux créer mon propre système IR qui peut utiliser plus de 2 longueurs d'impulsion, afin que le transfert de données puisse se produire plus rapidement. Idéalement, j'aimerais utiliser 8 longueurs d'impulsion différentes pour le codage octal (par exemple 200us, 400us, 600us, etc.).
J'ai cependant remarqué des variations assez importantes dans les valeurs renvoyées pulseIn()
(+/- 10%). Je m'attends à ce qu'au moins une partie soit introduite par les modules émetteur et récepteur IR, mais je n'ai pas assez de matériel pour le vérifier.
En supposant que je puisse atténuer cette erreur externe, est-il pulseIn()
susceptible d'être suffisamment précis pour distinguer de telles impulsions similaires?