Encoder 函式庫
86Duino IDE 從 Coding 104 開始加入此函式庫,用於操作 86Duino 提供的高速編碼器輸入介面功能。
86Duino 的編碼器介面可切換成不同模式來與各種編碼器連接,例如旋轉編碼器與光學尺。每組編碼器介面有三根針腳,分別標為 A、B、Z,在不同模式下對應不同功能;不同 86Duino 板支援不同數量的編碼器介面,例如在 86Duino Zero 上支援一組(軸),在 86Duino One 上則可支援四組(軸)。以下是 86Duino 編碼器介面與腳位編號的對應表:
86Duino Boards | ENC0 pins | ENC1 pins | ENC2 pins | ENC3 pins |
Zero | A: 42 B: 43 Z: 44 |
– | – | – |
One | A: 42 B: 43 Z: 44 |
A: 18 B: 19 Z: 20 |
A: 33 B: 34 Z: 35 |
A: 36 B: 37 Z: 38 |
EduCake | A: 42 B: 43 Z: 44 |
A: 18 B: 19 Z: 20 |
– | – |
PLC | A: 0 B: 2 Z: 5 |
– | – | – |
下面是 86Duino 編碼器輸入介面的規格:
- 32-bit 高速計數器,最大計數頻率可達 25MHz
- 輸入腳數位濾波功能
- 支援 Pulse/DIR、CW/CCW、A/B Phase 三種類型的增量編碼器
- 支援 SSI 類型的絕對式編碼器
- 支援硬體 PWM 脈波捕捉功能,解析度可達 10ns
- 支援位置比較功能
Functions
- begin()
- end()
- write()
- read()
- readNanoseconds()
- indexRead()
- directionRead()
- pulseIn()
- pulseInNanoseconds()
- setComparator()
- setDigitalFilter()
- setInputPolarity()
- setIndexReset()
- setRange()
- attachInterrupt()
- detachInterrupt()
註:為了讓 Encoder 函式庫更容易上手,我們在 API 提供的功能性上做了相當程度的簡化,上面 API 尚未充份利用 86Duino 硬體內建的編碼器介面之全部功能;若您對開發 86Duino 編碼器介面完整功能的函式庫有興趣,您將需要參閱 Vortex86EX Motion-Control Module 的 datasheet,請來信向 soc@dmp.com.tw 洽詢。
The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.