Я использую pulseIn()
функцию для обработки кодирования двоичных данных на основе ШИМ. Это хорошо работает для различения импульсов, которые значительно различаются по длине, например, 500 мкс против 1500 мкс. Это делает его более чем достаточным для обработки типичных ИК-пультов.
Тем не менее, я хочу создать свою собственную ИК-систему, которая может использовать более 2 импульсов, чтобы передача данных происходила быстрее. В идеале я хотел бы использовать 8 различных длин импульсов для восьмеричного кодирования (например, 200us, 400us, 600us и т. Д.).
Я заметил довольно значительные различия в значениях, возвращаемых pulseIn()
хотя (+/- 10%). Я ожидаю, что, по крайней мере, некоторые из них представлены модулями ИК-передатчика и приемника, но у меня нет достаточно хорошего оборудования, чтобы это проверить.
Предполагая, что я могу смягчить эту внешнюю ошибку, pulseIn()
вероятно, будет достаточно точным, чтобы различать такие похожие импульсы?