Sto usando la pulseIn()
funzione per elaborare la codifica dei dati binari basata su PWM. Funziona bene per distinguere gli impulsi che hanno lunghezze significativamente diverse, ad es. 500us contro 1500us. Ciò lo rende più che sufficiente per la gestione dei telecomandi IR tipici.
Tuttavia, voglio creare il mio sistema IR che può utilizzare più di 2 lunghezze di impulso, in modo che il trasferimento dei dati possa avvenire più rapidamente. Idealmente, vorrei usare 8 diverse lunghezze di impulso per la codifica ottale (ad es. 200us, 400us, 600us, ecc.).
Ho notato variazioni piuttosto significative nei valori restituiti da pulseIn()
(+/- 10%). Mi aspetto che almeno in parte venga introdotto dai moduli trasmettitore e ricevitore IR, ma non ho abbastanza attrezzature per verificarlo.
Supponendo di poter mitigare quell'errore esterno, è pulseIn()
probabile che sia abbastanza preciso da distinguere tali impulsi simili?