Encoder.. là gì?
Hẵn là gần đây có quá nhiều bài viết có liên quan đến từ Encoder, nhưng Encoder là gì, nó như thế nào.. thì hơi mơ hồ vì có quá nhiều khái niệm.
Theo hiểu biết ít ỏi của mình thì Encoder là một thiết bị, hoặc chương trình mã hóa. Mình xin chia sẻ một số khái niệm encoder mà mình biết để các bạn có thể tham khảo làm quen. Do hiểu biết ít ỏi nên có thể đúng, cũng có thể sai, bạn nào Pro rồi thì vào góp ý thêm nhé.
Còn những khái niệm Encoder thường được nhắc đến trên diễn đàn ta là chỉ các thiết bị sau:
- Quadrature Encoder
- Rotary Encoder
- Linear Encoder
- v.v...
Nhiều khái niệm vậy thôi chứ có thể phân thành mấy loại sau:
- Phân loại theo phương pháp đọc mã:
--- Loại tiếp xúc; thường thấy dưới dạng các núm vặn điều chỉnh trong các thiết bị, như là các công tắc tiếp điểm.
--- Loại dùng quang học (optical encoder) thường thấy ở các servo, closed loop step v.v...
--- Loại dùng từ trường (magnetic encoder) loại này thì hơi mới.. nên mình chưa tiếp xúc
- Phân loại theo kiểu:
--- Loại xoay (rotary encoder)
--- Loại thẳng (linear encoder), dân thợ thường gọi là thước quang.
- Ngoài ra còn phân loại theo giao tiếp, cách mã hóa, mã hóa tương đối, tuyệt đối v.v... Mà mấy cái này thì cũng hơi hiếm thấy, và về bản chất là người dùng thường ít quan tâm đến nên thôi (chẵng qua là không biết nên không nói hehe.) Các khái niệm này sẽ nhắc tới.. khi dùng tới .
Một số hình ảnh minh họa.
- Loại xoay (rotary encoder)
Các dạng đĩa mã hóa trong rotary enocder (INC & ABS)
- Loại thẳng (linear encoder)
- Loại dùng từ trường (magnetic encoder)
Thêm cái clip cho sinh động
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
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
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
Như vậy trong một chu kỳ ta có 04 lần thay đổi trạng thái.. theo mức logic của BA thì: 00, 01, 11, 10.
Ví dụ với encoder có số xung là 100ppr, thì chúng ta có tới 400 lần thay đổi trạng thái thấp/cao của A & B.
Căn cứ vào sự thay đổi trạng thái này ta có thể xác định được chiều di chuyển, đếm số thay đổi trạng thái ta có thể xác định được vị trí. Có mấy cách ghi nhận sự thay đổi trạng thái sau:
- Cách 1.
Với cách này ta chỉ theo dõi sự thay đổi trạng thái của 01 kênh (A hoặc B), chỉ theo dỏi trạng thái từ thấp lên cao hoặc từ cao xuống thap, đếm số lần thay đổi trạng thái của kênh này để xác định vị trí, xác định trạng thái của kênh còn lại để biết được chiều quay.
Như thế với cách đọc này encoder 100ppr sẽ xác định được 100 vị trí / 1 vòng quay. Chế độ đọc này được gọi là X1.
- Cách 2.
or
Với cách này ta chỉ theo dõi sự thay đổi trạng thái của 01 kênh (A hoặc B), theo dỏi trạng thái từ thấp lên cao và từ cao xuống thấp, đếm số lần thay đổi trạng thái của kênh này để xác định vị trí, xác định trạng thái của kênh còn lại để biết được chiều quay.
Như thế với cách đọc này encoder 100ppr sẽ xác định được 200 vị trí / 1 vòng quay. Chế độ đọc này được gọi là X2.
- Cách 3.
Với cách này ta chỉ theo dõi sự thay đổi trạng thái của cả 2 kênh (A và B), theo dỏi trạng thái từ thấp lên cao và từ cao xuống thấp, đếm số lần thay đổi trạng thái để xác định vị trí, xác định trạng thái của kênh còn lại để biết được chiều quay.
Như thế với cách đọc này encoder 100ppr sẽ xác định được 400 vị trí / 1 vòng quay. Chế độ đọc này được gọi là X4.
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
Sự thay đổi trạng thái (CW & CCW) của Gray code 2 bit (enocder AB)
Sơ đồ & bảng thay đổi trạng thái A/B theo chiều thuận.
Sơ đồ & bảng thay đổi trạng thái A/B theo chiều nghịch.
Bảng giá trị Gray code cho tất cả các thay đổi trạng thái (X4)
Bảng giá trị Gray code cho tất cả các thay đổi trạng thái ở 01 kênh (X2)
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
loại của vexta là loạn encoder gì cụ. liệu có phải là từ trường . chắc ko vì cái bánh xe sau dành cho vị trí nó ko hút gì hết
0978835302
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
Lụm được cái ảnh động về nguyên lý encoder nên Up vào cho nó thêm sinh động.
http://www.creative-robotics.com/quadrature-intro
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
Với encoder ABZ, Z để làm gì vậy bác, em đọc ở đâu đó em quên rồi nói là Z để xác lại vì AB có thể bị sai. Như thế có đúng không ạ.
Điện thoại 0 9 1 7 8 6 6 1 2 2 Cẩn
Z thường được gọi là index.. encoder quay đúng 1 vòng thì Z có tín hiệu 1 lần.. và tại một vị trí xác định.
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
Bổ sung thêm tí:
Ngày xưa người ta sử dụng absolute encoder dạng mã BCD rất nhiều nhưng sau một thời gian sử dụng thì họ phát hiện thường xảy ra hiện tượng lỗi do với một góc quay có quá nhiều trạng thái thay đổi từ trắng sang đen (nhiều bit đổi trạng thái) và ngược lại. Nên sau này mới phát triển cái bộ mã Gray này để với mỗi lần chuyển đổi trạng thái chỉ một bit để tránh lỗi.
Lần sửa cuối bởi ducduy9104, ngày 18-03-2016 lúc 01:00:02 PM.
HCM , 0945 ba nhăm 3577
Đ/Chỉ, STK: SMS để biết thêm chi tiết. Tks
Huhu... có trùm encoder nào biết cách đọc encoder TAMAGAWA SEIKI OAB-13/29bit FA-CODER TS 5642 này ko? Nó ko phải ABZ mới nhục chứ
Lần sửa cuối bởi Gamo, ngày 18-03-2016 lúc 03:43:00 PM.
http://www.tamagawa-seiki.com/pdf/do...5EJ_shusei.pdf
nghiên cứu cái này xem sao cụ gà
Hoho, cho tui đi....
Con encoder của ông có ghi sau lưng đó. Rẻ tiền thì thường chỉ có 4-5 dây: 5V-24V, Gnd, A, B, Z.
Hạng sang thì 5V-24V, Gnd, A+, A-, B+, B-, Z+, Z-
Sơ đồ thì phải cụ thể của con nào thì mới xác định đúng được bác ạ. Vì có quá nhiều kiểu output của các hãng.
Như ảnh thì nó sẽ có V+, A, B, Z, V-. Chiều và vị trí.. thì phải xem lại pdf chứ không nhớ rỏ.
Một số loại khác thì:
- V+, A+, A-, B+ B-, V- (có thể có thêm Z+, Z-, và shield)
- Số xịn hơn thì truyền serial, loại này thì chắc botay.com
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
E cũng bị dính vài cái servo mitsu 600w có encoder oab-13/29bit như a,a giải quyết driver ra sao với con đó a chỉ e với,cám ơn