# Máy, thiết bị và sản phẩm khác > Điện - Điện tử - Tự động hóa >  Encoder.. là gì?

## CKD

*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  :Wink: 

- 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  :Smile:  (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  :Wink: .

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

----------

anhcos, cnclaivung, katerman, nhatson, ppgas, secondhand, tcm

----------


## CKD

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_

----------

hungdn, katerman, secondhand, zentic

----------


## CKD

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*.

----------

secondhand

----------


## CKD

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)

----------

hungdn, nhatson, secondhand

----------


## ít nói

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

----------


## CKD

> 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


Cái đó là resolver, không phải là encoder.

----------


## CKD

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

----------

anhcos, cnclaivung, duonghoang, katerman, nhatson, ppgas, secondhand, solero, tcm

----------


## huynhbacan

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 ạ.

----------


## CKD

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.

----------

huynhbacan

----------


## ducduy9104

> 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 thuận.
> 
> ...


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.

----------

CKD, huynhbacan, ppgas, secondhand

----------


## Gamo

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ứ

----------


## nhatson

> 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ứ


chạy serial, 2 chân nguồn, 2 chân pin, 2 chan clock, 2 chân truyền đại khái là vậy

----------


## nhatson

http://www.tamagawa-seiki.com/pdf/do...5EJ_shusei.pdf
nghiên cứu cái này xem sao cụ gà

----------

Gamo

----------


## ppgas

Cảm ơn CKD đã mở chủ đề. Có câu hỏi sau xin các bác giải thích giúp:
Cũng là encoder, sao có cái có 5 dây, còn có cái 8 dây? 
Nếu servo thì có ngõ nối encoder, nhưng nếu là động cơ step có encoder như dưới đây thì encoder là loại gì và đấu nối ra sao ah?




Cảm ơn.

----------


## Gamo

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-

----------

ppgas

----------


## Gamo

> http://www.tamagawa-seiki.com/pdf/do...5EJ_shusei.pdf
> nghiên cứu cái này xem sao cụ gà


Đúng là chuyên gia thật  :Big Grin:  Cảm ơn Mr Linh đẹp giai :x :x :x

----------


## CKD

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

----------

Echchum, ppgas

----------


## nhatanh75

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

----------


## Tiêu Diêu Tử

> chạy serial, 2 chân nguồn, 2 chân pin, 2 chan clock, 2 chân truyền đại khái là vậy


của mình nó 14 dây cơ

----------


## Vanhiep96

> 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 ạ.


cái này thường dùng để về home anh ạ

----------


## Gamo

Ủa, về home ra sao hả bác?

----------

