Encoder có nhiều hình dạng, nhiều ứng dụng. Nhưng đặc điểm chung của phần lớn các encoder là có chung cách thức mã hóa. Mình chỉ trình bày loại thông dụng nhất, hay gặp nhất là: rotary encoder, dùng quang học, loại tương đối (INC).
Loại mã hóa hay được dùng là loại 2bit (A, B) hoặc 2bit (A, B, Z) và được gọi là Gray code. Gray code tham khảo từ Wiki. Trong đó:
- A, B là 02 bit dữ liệu, tín hiệu có dạng on/off và 2 bit dữ liệu lệch nhau 90o.
- Z là tín hiệu Index, báo hiệu encoder quay được 1 chu kỳ (1 vòng).
Xác định trạng thái và sự thay đổi trạng thái của các kênh A/B sẽ cho ta biết được hướng di chuyển. Đếm số lần thay đổi trạng thái của các kênh A/B cho ta biết được lượng di chuyển.
Ảnh minh họa A/B tương đương với out1/out2.
Độ phân giải là số chu kỳ thay đổi của kênh A/B trên một vòng quay (với rotary encoder), ký hiệu là PPR (pulse per revolution) hoặc xung/vòng.
Như hình ta thấy, 1 chu kỳ hoàn chỉnh của encoder là sự thay đổi giá trị từ mức thấp lên mức cao và trở lại mức thấp của cả 2 kênh A và B. Tổng cộng có 04 sự thay đổi trạng thái của A/A. 1 A từ mức thấp lên mức cao, 1 A từ cao xuống thấp, 1 B từ thấp lên cao, 1 B từ cao xuống thấp.
Nguồn http://svglobe.com/arduino/encoders.html



để chia sẻ bài viết lên facebook



Trả lời kèm Trích dẫn