旋轉編碼器原理與應用詳解:從結構到實戰 | 零基礎入門STM32第四十七步

主題內容教學目的/擴展視頻
旋轉編碼器電路原理,跳線設置,結構分析。驅動程序與調用。熟悉電路和驅動程序。

師從洋桃電子,杜洋老師


📑文章目錄

    • 一、旋轉編碼器是什么?
    • 二、內部結構揭秘
      • 2.1 機械組件解剖
      • 2.2 核心部件說明
    • 三、電路工作原理
      • 3.1 信號生成機制
      • 3.2 硬件連接方案
    • 四、關鍵技術解析
      • 4.1 消抖處理
      • 4.2 方向識別算法
    • 五、典型應用場景
    • 六、開發板實戰演示
    • 七、選型注意事項
    • 八、相關資源


(圖1:開發板與旋轉編碼器連接示意圖)
(圖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 方向識別算法

Created with Rapha?l 2.3.0 檢測A相變化 讀取B相狀態 B相==高電平? 標記為右旋 標記為左旋 yes no

五、典型應用場景

  1. 智能家居:空調溫度調節旋鈕
  2. 工業控制:數控機床參數設置
  3. 車載系統:多媒體音量控制
  4. 醫療設備:監護儀參數調整
  5. 物聯網終端:智能中控面板

六、開發板實戰演示

(圖3:TM1640顯示效果)

核心功能實現邏輯:

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)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897386.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897386.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897386.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何禁止電腦中某個應用聯網

一、通過防火墻基礎設置(快速操作) 打開控制面板 在任務欄搜索框輸入“控制面板”并打開,將右上角“查看方式”切換為“大圖標”。 進入防火墻設置 點擊 Windows Defender防火墻 → 左側選擇 允許應用或功能通過Windows Defender防火墻。…

aws(學習筆記第三十二課) 深入使用cdk(API Gateway + event bridge)

文章目錄 aws(學習筆記第三十二課) 深入使用cdk學習內容:1. 使用aws API Gatewaylambda1.1. 以前的練習1.2. 使用cdk創建API Gateway lambda1.3. 確認cdk創建API Gateway lambda 2. 使用event bridge練習producer和consumer2.1. 代碼鏈接2.2. 開始練習2.3. 代碼部…

城市霓虹燈夜景拍照后期Lr調色教程,手機濾鏡PS+Lightroom預設下載!

調色教程 在城市霓虹燈夜景拍攝中,由于現場光線復雜等因素,照片可能無法完全呈現出當時的視覺感受。通過 Lr 調色,可以彌補拍攝時的不足。例如,運用基本調整面板中的曝光、對比度、陰影等工具,可以處理出畫面的整體明暗…

自然語言處理:文本分類

介紹 大家好,我這個熱衷于分享知識的博主又來啦!之前我們一起深入探討了自然語言處理領域中非常重要的兩個方法:樸素貝葉斯和邏輯斯諦回歸。在探索的過程中,我們剖析了樸素貝葉斯如何基于概率原理和特征條件獨立假設,…

PDFMathTranslate安裝使用

PDF全文翻譯!!!! PDFMathTranslate安裝使用 它是個啥 PDFMathTranslate 可能是一個用于 PDF 文件的數學公式翻譯 工具。它可能包含以下功能: 提取 PDF 內的數學公式 將數學公式轉換成 LaTeX 代碼 翻譯數學公式的內…

【由技及道】量子構建交響曲:Jenkinsfile流水線的十一維編程藝術【人工智障AI2077的開發日志008】

摘要:當代碼提交觸發時空漣漪,當構建流水線穿越量子維度——歡迎來到自動化構建的終極形態。本文將揭示如何用Jenkinsfile編寫量子構建樂章,讓每次代碼提交都成為跨維度交響樂的音符。 動機:構建系統的量子哲學 “主人啊&#xff…

K8S高可用集群-小白學習之二進制部署(ansible+shell)

一.K8S高可用集群配置概述 序言:本文從一個小白的視角進行K8S的研究和部署,采用二進制的方式是為了更清楚了分解部署流程及了解這個集群是怎么運作的,加上ansible+shell是方便在這個過程中,遇到了問題,我們可以不斷的快速重復部署來測試和研究問題的所在點,本文的架構圖…

【自學筆記】R語言基礎知識點總覽-持續更新

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 R語言基礎知識點總覽1. R語言簡介2. R語言安裝與環境配置3. R語言基礎語法3.1 數據類型3.2 向量與矩陣3.3 數據框與列表 4. 控制結構4.1 條件語句4.2 循環結構 5. 函…

【編譯器】VSCODE搭建ESP32-C3

【編譯器】VSCODE搭建ESP32-C3 文章目錄 [TOC](文章目錄) 前言一、下載配置二、編譯三、燒錄四、參考資料總結 前言 使用工具: 1. 提示:以下是本篇文章正文內容,下面案例可供參考 一、下載配置 安裝IDF,打開例程 二、編譯 三…

通義千問本地配置并實現微調

通義千問本地配置并實現微調 最小Qwen模型大小942mb from modelscope import snapshot_download model_dir = snapshot_download(“qwen/Qwen2.5-0.5B”, cache_dir=“./models2.5”) Qwen2.5-0.5B:942MB from modelscope import snapshot_download model_dir = snapshot_d…

Magento2根據圖片文件包導入產品圖片

圖片包給的圖片文件是子產品的圖片&#xff0c;如下圖&#xff1a;A104255是主產品的sku <?php/*** 根據圖片包導入產品圖片&#xff0c;包含子產品和主產品* 子產品是作為主圖&#xff0c;主產品是作為附加圖片*/use Magento\Framework\App\Bootstrap;include(../app/boot…

力扣146 - LRU緩存

視頻講解 哈希 雙向鏈表 為什么要用雙向鏈表&#xff1f; 快速刪除節點&#xff08;O(1&#xff09;&#xff09; 如果是單鏈表的話&#xff0c;刪除一個節點時&#xff0c;需要從頭遍歷&#xff0c;找到前驅節點&#xff0c;才能修改 prev->next&#xff0c;導致 O(n)…

考研408

是否需要考研&#xff1f; 考研前期準備 目標院校 每年9月10月才會公布 考試時長3小時 數據結構 1.時間復雜度選擇題計算 2.順序表鏈表特點;指針、結構體語法&#xff0c;鏈表結點定義&#xff0c;鏈表頭結點與頭指針,常見的五種鏈 表&#xff0c;鏈表的插入刪除操作;順…

nodejs使用WebSocket實現聊天效果

在nodejs中使用WebSocket實現聊天效果&#xff08;簡易實現&#xff09; 安裝 npm i ws 實現 創建 server.js /*** 創建一個 WebSocket 服務器&#xff0c;監聽指定端口&#xff0c;并處理客戶端連接和消息。** param {Object} WebSocket - 引入的 WebSocket 模塊&#xff0c…

Web網頁制作(靜態網頁):千年之戀

一、是用的PyCharm來寫的代碼 二、代碼中所用到的知識點&#xff08;無 js&#xff09; 這段HTML代碼展示了一個簡單的注冊頁面&#xff0c;包含了多個HTML元素和CSS樣式的應用。 這段HTML代碼展示了一個典型的注冊頁面&#xff0c;包含了常見的HTML元素和表單控件。通過CSS樣…

操作系統知識點23

1.實時操作系統的主要設計目標&#xff1a;在嚴格時間氛圍內對外部請求做出反應。 2.當用戶程序正在處理器上運行時&#xff0c;若此刻取到了一條特權指令&#xff0c;則處理器將停止執行該指令&#xff0c;并產生一個“非法操作”的事件 3.某網絡監控系統中。多個被授權的用…

CSS—網格布局Grid

網格布局grid 提供了帶有行和列的基于網格的布局系統&#xff0c;無需使用浮動和定位。 當 HTML 元素的 display 屬性設置為 grid 或 inline-grid 時&#xff0c;它就會成為網格容器。 更多布局模式可以參考之前的博客&#xff1a; ??????CSS—flex布局、過渡transit…

如何將本地已有的倉庫上傳到gitee (使用UGit)

1、登錄Gitee。 2、點擊個人頭像旁邊的加號&#xff0c;選擇新建倉庫&#xff1a; 3、填寫倉庫相關信息 4、復制Gitee倉庫的地址 5、綁定我們的本地倉庫與遠程倉庫 6、將本地倉庫發布&#xff08;推送&#xff09;到遠程倉庫&#xff1a; 注意到此處報錯&#xff0c;有關于…

【JAVA面試題】Spring、Spring MVC、Spring Boot、Spring Cloud的區別與聯系

在Java生態中&#xff0c;Spring框架及其衍生技術&#xff08;如Spring MVC、Spring Boot、Spring Cloud&#xff09;是開發企業級應用的核心工具。它們在功能、定位和使用場景上各有側重&#xff0c;但又緊密聯系。本文將詳細解析它們的區別與聯系&#xff0c;幫助你在面試中更…

【Linux系統編程】初識系統編程

目錄 一、什么是系統編程1. 系統編程的定義2. 系統編程的特點3. 系統編程的應用領域4. 系統編程的核心概念5. 系統編程的工具和技術 二、操作系統四大基本功能1. 進程管理&#xff08;Process Management&#xff09;2. 內存管理&#xff08;Memory Management&#xff09;3. 文…