Tôi đã sử dụng pulseIn()
chức năng này để xử lý mã hóa dữ liệu nhị phân dựa trên PWM. Nó hoạt động tốt để phân biệt các xung có độ dài khác nhau đáng kể, ví dụ 500us so với 1500us. Điều đó làm cho nó quá đủ để xử lý các điều khiển từ xa IR điển hình.
Tuy nhiên, tôi muốn tạo một hệ thống IR của riêng mình có thể sử dụng nhiều hơn 2 độ dài xung để việc truyền dữ liệu có thể diễn ra nhanh hơn. Lý tưởng nhất là tôi muốn sử dụng 8 độ dài xung khác nhau để mã hóa bát phân (ví dụ 200us, 400us, 600us, v.v.).
Tôi đã nhận thấy các biến thể khá đáng kể trong các giá trị được trả về pulseIn()
mặc dù (+/- 10%). Tôi hy vọng ít nhất một số được giới thiệu bởi các mô-đun máy phát và máy thu IR, nhưng tôi không có thiết bị đủ tốt để xác minh điều đó.
Giả sử tôi có thể giảm thiểu lỗi bên ngoài đó, pulseIn()
có khả năng đủ chính xác để phân biệt các xung tương tự như vậy không?