主題 | 內容 | 教學目的/擴展視頻 |
---|---|---|
旋轉編碼器 | 電路原理,跳線設置,結構分析。驅動程序與調用。 | 熟悉電路和驅動程序。 |
師從洋桃電子,杜洋老師
📑文章目錄
- 一、旋轉編碼器是什么?
- 二、內部結構揭秘
- 2.1 機械組件解剖
- 2.2 核心部件說明
- 三、電路工作原理
- 3.1 信號生成機制
- 3.2 硬件連接方案
- 四、關鍵技術解析
- 4.1 消抖處理
- 4.2 方向識別算法
- 五、典型應用場景
- 六、開發板實戰演示
- 七、選型注意事項
- 八、相關資源


一、旋轉編碼器是什么?
旋轉編碼器是一種通過機械旋轉產生數字信號的傳感器設備,核心功能包括:
- 360°無限位旋轉檢測
- 實時方向識別(左/右)
- 按壓觸發功能
- 高精度位置感知(20位格/圈)
▲ 🔍 旋轉編碼器介紹(中文)
二、內部結構揭秘
2.1 機械組件解剖
┌───────┐│ 軸體 │└───┬───┘│
┌──────────▼──────────┐
│ 彈性接觸片 │
│ ┌─◆─K1───────┐ │
│ │ ┌───◆─K2│ │
│ │ │ ┌─◆─K3│ │
└──┼────┼─┼─────┘公共端 A B (三個引腳)
2.2 核心部件說明
部件 | 功能說明 |
---|---|
K1 | 按壓開關(垂直方向觸發) |
K2/K3 | 旋轉檢測開關(相位差90°) |
彈片 | 提供機械反饋和定位 |
三、電路工作原理
3.1 信號生成機制
旋轉時K2/K3產生正交波形:
右旋時序: 左旋時序:
A相: _┌─┐_┌─┐ A相: ┌─┐_┌─┐_
B相: ┌─┐_┌─┐_ B相: _┌─┐_┌─┐
通過檢測兩個信號的相位差順序判斷旋轉方向
3.2 硬件連接方案
+3.3V▲│10KΩ
ENCODER─┼─◆─→ PA6 (A相)│ │10KΩ├───◆─→ PB2 (B相)│ │10KΩ└───◆─→ PA7 (按壓)
四、關鍵技術解析
4.1 消抖處理
- 機械抖動時間:≤2ms
- 軟件消抖方案:
if(檢測到電平變化){delay_ms(20); // 超時等待抖動if(狀態仍有效)確認動作 }
4.2 方向識別算法
五、典型應用場景
- 智能家居:空調溫度調節旋鈕
- 工業控制:數控機床參數設置
- 車載系統:多媒體音量控制
- 醫療設備:監護儀參數調整
- 物聯網終端:智能中控面板
六、開發板實戰演示

核心功能實現邏輯:
while(1){讀取編碼器狀態();if(左旋轉){計數器--;更新數碼管顯示();}if(右旋轉){計數器++;更新數碼管顯示();}if(按壓動作){計數器歸零;}
}
▲ 完整工程代碼示例?旋轉編碼器數碼管顯示程序
七、選型注意事項
參數 | 推薦值 |
---|---|
分辨率 | 20脈沖/轉 |
工作電壓 | 3.3V-5V DC |
機械壽命 | >10萬次旋轉 |
按壓力度 | 200±50gf |
工作溫度 | -25℃~+85℃ |
八、相關資源
[1] 洋桃電子B站課程-STM32入門100步
[2] STM32F103xx官方數據手冊
[3] STM32F103X8-B數據手冊(中文)
[4] STM32F103固件函數庫用戶手冊(中文)
[5] 旋轉編碼器數碼管顯示程序
[6] 旋轉編碼器介紹(中文)
💬 技術討論(請在評論區留言~)
📌 下期預告:下一期將探討旋轉編碼器驅動程序分析,歡迎持續關注!
點擊查閱🔍往期【STM32專欄】文章
版權聲明:本文采用[CC BY-NC-SA 4.0]協議,轉載請注明來源
實測開發版:洋桃1號開發版(基于STM32F103C8T6)
更新日志:
- v1.0 初始版本(2025-03-05)