那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何將增量旋轉編碼器與Arduino連接

科技觀察員 ? 來源:electroschematics ? 作者:electroschematics ? 2024-02-11 10:00 ? 次閱讀

在本教程中,您將學習如何將增量旋轉編碼器Arduino連接,以讀取旋鈕的運動。這對于在機器人和其他應用程序中創建用戶界面或讀取機械位置非常有用。

您需要的器件

Arduino開發板

1x 增量式旋轉編碼器(像這樣)

4個10 kΩ電阻(R1、R2)

2x 0.1uF 電容器 (C1, C2)

面包板

原理圖和試驗板設置

請注意,在此原理圖中,我直接使用旋轉編碼器,因此它需要一些額外的元件。但您也可以購買旋轉編碼器板,在板上包含這些額外的組件,以使連接更簡單。

1.png

原理圖中的VDD僅指Arduino的5V電壓。

連接此旋轉編碼器所需的額外組件的連接取自旋轉編碼器數據表中的建議濾波電路。如果您使用的是不同的編碼器,請務必查看數據表中的“建議濾波電路”,因為它可能不同。

它是如何工作的

該電路的工作原理是查看旋轉編碼器的兩個引腳 A 和 B,并檢查它們中哪一個先于另一個引腳為高電平。如果 A 先于 B 走高,那就是一個方向。如果 B
先于 A 走高,則方向相反。

連接Arduino旋轉編碼器電路

在下圖中,您可以看到如何將完整的示例電路連接到面包板上,以及將其連接到Arduino所需的接線。

2.png

分步說明

將旋轉編碼器連接到面包板。

將兩個10 kΩ電阻R1和R2從A和B置于5V。

將兩個 10 kΩ 電阻 R3 和 R4 分別從 A 和 B 連接到 Arduino 數字引腳 10 和 11。

如圖所示放置0.1uF電容(C1和C2),使編碼器信號去抖動。

將 C 點接地。

使用 USB 數據線將 Arduino 連接到您的計算機。

將以下代碼上傳到您的 Arduino。此代碼初始化旋轉編碼器,并在每次轉動編碼器時使用中斷來更新位置計數。

結果將打印到串行端口,以便您可以從串行監視器中讀取結果。

// Define the pins used for the encoder
const int encoderPinA = 10;
const int encoderPinB = 11;

// Variables to keep the current and last state
volatile int encoderPosCount = 0;
int lastEncoded = 0;

void setup() {
  Serial.begin(9600);

  // Set encoder pins as input with pull-up resistors
  pinMode(encoderPinA, INPUT_PULLUP); 
  pinMode(encoderPinB, INPUT_PULLUP);

  // Attach interrupts to the encoder pins
  attachInterrupt(digitalPinToInterrupt(encoderPinA), updateEncoder, CHANGE);
  attachInterrupt(digitalPinToInterrupt(encoderPinB), updateEncoder, CHANGE);
}

void loop() {
  static int lastReportedPos = -1; // Store the last reported position
  if (encoderPosCount != lastReportedPos) {
    Serial.print("Encoder Position: ");
    Serial.println(encoderPosCount);
    lastReportedPos = encoderPosCount;
  }
}

void updateEncoder() {
  int MSB = digitalRead(encoderPinA); // MSB = most significant bit
  int LSB = digitalRead(encoderPinB); // LSB = least significant bit

  int encoded = (MSB < < 1) | LSB; // Converting the 2 pin value to single number
  int sum  = (lastEncoded < < 2) | encoded; // Adding it to the previous encoded value

  if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderPosCount++;
  if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderPosCount--;

  lastEncoded = encoded; // Store this value for next time
}

上傳此代碼后,您可以以 9600 的波特率打開串行監視器,以查看編碼器的移動在旋轉時的變化。

如果編碼器值不穩定或未按預期變化,請根據原理圖仔細檢查接線,并確保電阻器和電容器正確放置以進行去抖動。
審核編輯:陳陳

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 旋轉編碼器
    +關注

    關注

    5

    文章

    159

    瀏覽量

    26024
  • Arduino
    +關注

    關注

    188

    文章

    6477

    瀏覽量

    187819
收藏 人收藏

    評論

    相關推薦

    Arduino開發板的旋轉編碼器如何使用

    在本篇文章中,我們學習如何在Arduino開發板上使用旋轉編碼器。我們將以帶符號的數字同時顯示順時針和逆時針方向的編碼值。 所需的組件 ●
    的頭像 發表于 10-26 15:47 ?8146次閱讀
    <b class='flag-5'>Arduino</b>開發板的<b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>如何使用

    增量旋轉編碼器

    請問有沒有了解增量旋轉編碼器的高手,幫我解決一下一直困擾我問題:1.關于編碼器內部的內插細分 有的碼的內插細分值有1,2,4,6,10,
    發表于 10-16 14:30

    關于增量旋轉編碼器

    5腳增量旋轉編碼器,想測轉角和轉數,完全沒有頭緒,接線也有疑問,知道怎么弄的快來!!
    發表于 08-28 11:53

    利用Arduino增量式光電編碼器測量速度

    利用Arduino增量式光電編碼器測量速度、方向、位移。材料:Arduino mega 2560分辨率256ABZ相增量
    發表于 09-03 06:02

    增量旋轉編碼器設計

    閱讀目錄一、增量旋轉編碼器二、硬件設計三、軟件設計Development kit:MDK5.14IDE:UV4MCU:STM32F103C8T6回到頂部一、增量
    發表于 12-01 07:57

    RHI 74 增量旋轉編碼器

    如果要在增量編碼器后方安裝額外的部件,就可以使用RHI 74產品線系列的增量編碼器.為此,該旋轉編碼
    發表于 10-08 07:49 ?45次下載

    增量編碼器簡介

      增量編碼器是一種旋轉位移轉換為一連串數字脈沖信號的旋轉式傳感。這些脈沖用來控制角位移,如
    發表于 10-19 16:54 ?27次下載

    如何使用增量編碼器

    如何使用增量編碼器 1,增量旋轉編碼器有分辨率的差異,使用每圈產生的脈沖數來計量,數目從6到5400或更高,脈沖數越多,分辨
    發表于 09-26 17:35 ?4331次閱讀

    增量編碼器與絕對型編碼器的區別

    增量編碼器與絕對型編碼器的區別 編碼器如以信號原理來分,有增量編碼器,絕對型
    發表于 09-26 17:36 ?2632次閱讀

    Arduino旋轉編碼器的教程

    上面草圖的第10行用于啟用Arduino Uno的2號插針的中斷。在“ doEncoder”功能中,由旋轉編碼器計算得出。如果DT和CLK(Arduino Uno的引腳中斷)的值相同,
    的頭像 發表于 10-31 08:59 ?1w次閱讀
    <b class='flag-5'>Arduino</b><b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>的教程

    增量旋轉編碼器工作原理及安裝步驟

    增量旋轉編碼器沒有固定的起始零點,輸出的是與轉角的增量成正比的脈沖,需要用計數來計脈沖數。
    的頭像 發表于 03-21 11:43 ?1.1w次閱讀

    如何將光學旋轉編碼器Arduino連接

    光學旋轉編碼器是一種機械設備,在圓柱形外殼的內部有一個旋轉軸,其結構與電機相同。一個圓形的平盤,上面有兩組插槽。光學傳感安裝在此光盤的兩側,發射
    的頭像 發表于 05-07 14:42 ?6798次閱讀

    基于Sensor API如何添加增量旋轉編碼器的驅動

    增量旋轉編碼器作為輸入器件廣泛用于各種設備,例如汽車音響的音量調節,收音機頻率調節,示波器上的旋鈕。但遺憾的是在Zephyr中并沒有增量旋轉
    的頭像 發表于 07-28 09:55 ?2424次閱讀

    STM32-增量旋轉編碼器測量

    閱讀目錄一、增量旋轉編碼器二、硬件設計三、軟件設計Development kit:MDK5.14IDE:UV4MCU:STM32F103C8T6回到頂部一、增量
    發表于 11-22 20:06 ?47次下載
    STM32-<b class='flag-5'>增量</b>式<b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>測量

    增量旋轉編碼器

    電子發燒友網站提供《增量旋轉編碼器.pdf》資料免費下載
    發表于 09-03 11:51 ?0次下載
    <b class='flag-5'>增量</b><b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>
    大发888娱乐城888bg| 金杯百家乐的玩法技巧和规则| 百家乐波音平台有假吗| 全讯网qx1860| 星河娱乐| 百家乐官网偷吗| 网上百家乐哪里| 康莱德百家乐的玩法技巧和规则 | 巴登娱乐城信誉怎么样| 太阳城百家乐官网怎么出千| 百家乐最低下注| 百家乐作弊| 澳门百家乐官网指数| 索罗门百家乐官网的玩法技巧和规则 | 百家乐冼牌机| 兴城市| 百家乐官网咋样赢钱| 大发888游戏下载中心| 怎样玩百家乐官网赢钱| 百家乐重要心态| 桐庐棋牌世界| 里尼的百家乐官网策略| 百家乐博欲乐城| 百家乐官网如何投注法| 百家乐能赚大钱吗| 德州扑克中文版| 百家乐官网官网站| 百家乐官网网| 顶级赌场网址| 百家乐官网官网7scs| 鑫鑫百家乐的玩法技巧和规则| 和顺县| 百家乐楼梯缆 | 太阳城音乐广场| 百家乐官网园鼎盛娱乐场| 百家乐赌大小| 百家乐官网庄闲客户端| 赌场百家乐赢钱| 必博百家乐官网游戏| 百家乐出千的高科技| 游戏机百家乐官网作弊|