在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

帶Arduino的旋轉編碼器設計 旋轉編碼器的工作原理和特點

CHANBAEK ? 來源:網絡整理 ? 作者:網絡整理 ? 2024-07-04 17:17 ? 次閱讀

一、旋轉編碼器概述

旋轉編碼器(Rotary Encoder),也稱為軸編碼器,是一種將旋轉的機械位移量轉換為電氣信號傳感器。這些電氣信號經過處理后,可以用于檢測位置、速度等參數。旋轉編碼器廣泛應用于工業控制機器人技術、精密測量、自動化設備以及計算機輸入設備等領域。作為一種集光機電技術于一體的速度位移傳感器,旋轉編碼器具有高精度、高分辨率、長壽命和穩定可靠等優點。

二、旋轉編碼器的工作原理

旋轉編碼器的工作原理主要基于光電轉換或磁電轉換技術。以光電式旋轉編碼器為例,其工作原理簡述如下:

  1. 光電轉換過程
    • 旋轉編碼器的核心部件包括一個光柵盤(或稱為碼盤)、發光元件(如LED)和接收元件(如光敏二極管或光敏三極管)。
    • 當旋轉編碼器的軸帶動光柵盤旋轉時,發光元件發出的光被光柵盤上的狹縫切割成斷續光線。這些斷續光線隨后被接收元件接收,并轉換為初始的電信號。
  2. 信號處理
    • 接收到的初始電信號經過后續電路的處理,如放大、整形等,最終輸出為脈沖信號或代碼信號。這些信號可以直接被控制系統讀取和處理。
  3. 方向判斷與計數
    • 對于增量式旋轉編碼器,通常會有A、B兩相輸出信號,且兩相信號之間存在90度的相位差。通過檢測A、B兩相信號的相位關系,可以判斷旋轉編碼器的旋轉方向。
    • 同時,通過計數A相或B相信號的脈沖數量,可以計算出旋轉編碼器的旋轉角度或位移量。
  4. 零位脈沖
    • 部分旋轉編碼器還會提供一個Z相信號作為零位脈沖。每當旋轉編碼器旋轉一圈時,Z相信號會輸出一個脈沖,用于校準或作為參考零位。 # 三、旋轉編碼器的特點

旋轉編碼器作為一種高精度、高可靠性的傳感器,具有以下顯著特點:

  1. 高精度與高分辨率
    • 旋轉編碼器能夠精確地將旋轉的機械位移量轉換為電氣信號,具有較高的測量精度和分辨率。例如,光學式增量型編碼器可以有較高的單圈脈沖數,如2500到10000個脈沖,從而實現對旋轉角度或位移量的精細測量。
  2. 長壽命與穩定性
    • 旋轉編碼器采用無觸點的光電或磁電轉換技術,避免了傳統機械接觸式傳感器因磨損而導致的性能下降問題。因此,旋轉編碼器具有較長的使用壽命和穩定的性能表現。
  3. 多功能性
    • 旋轉編碼器不僅可以測量旋轉角度或位移量,還可以根據輸出信號的頻率計算出旋轉速度。此外,通過配合其他傳感器或控制系統,還可以實現更復雜的功能和自動化控制。
  4. 適應性強
    • 旋轉編碼器具有多種類型和規格可供選擇,如增量式、絕對值式、單路輸出、雙路輸出等。這些不同類型的旋轉編碼器可以適應不同的應用場景和測量需求。
  5. 易于安裝與維護
    • 旋轉編碼器體積小、重量輕、結構緊湊,易于安裝在各種機械設備上。同時,由于其無觸點的設計特點,使得旋轉編碼器的維護成本相對較低。
  6. 抗干擾能力強
    • 旋轉編碼器采用光電或磁電轉換技術,信號傳輸過程中不易受到外界電磁干擾的影響。因此,旋轉編碼器在惡劣的工業環境中也能保持穩定的性能表現。

四、旋轉編碼器的應用領域

旋轉編碼器因其高精度、高分辨率和穩定可靠的性能特點,在多個領域得到了廣泛應用:

  1. 工業自動化
    • 在工業自動化生產線中,旋轉編碼器常被用于測量和控制機械部件的旋轉角度、位移量和速度等參數。通過與PLC伺服電機等設備的配合使用,可以實現自動化控制和精確測量。
  2. 機器人技術
    • 在機器人技術中,旋轉編碼器被廣泛應用于關節角度的測量和控制。通過精確測量機器人關節的旋轉角度和速度,可以實現對機器人姿態和運動軌跡的精確控制。
  3. 精密測量
    • 在精密測量領域,如光學儀器、精密機床等場合中,旋轉編碼器常被用于測量微小的旋轉角度或位移量。其高精度和高分辨率的特點使得測量結果更加準確可靠。
  4. 計算機輸入設備
    • 在計算機輸入設備中,如鼠標和軌跡球等裝置中,也常采用旋轉編碼器來檢測用戶的旋轉操作。通過測量旋轉編碼器的旋轉角度和速度等參數,可以實現對光標位置的精確控制。

五、旋轉編碼器的分類

旋轉編碼器根據其工作原理和輸出信號的特點,可以大致分為以下幾類:

  1. 增量式旋轉編碼器
    • 增量式旋轉編碼器是最常見的一種類型。它輸出的是與旋轉角度增量成正比的脈沖信號。通過檢測A、B兩相的脈沖數量和相位差,可以確定旋轉的方向和角度。增量式編碼器結構簡單,成本較低,但每次上電或復位后,需要借助外部設備或算法來確定起始位置。
  2. 絕對值式旋轉編碼器
    • 絕對值式旋轉編碼器在旋轉過程中,每個角度位置都對應一個唯一的編碼值。即使斷電或重啟,也能直接讀取當前的角度位置,無需重新校準。這種編碼器通常使用二進制、格雷碼或BCD碼等方式進行編碼,具有較高的抗干擾能力和可靠性。
  3. 混合式旋轉編碼器
    • 混合式旋轉編碼器結合了增量式和絕對值式的特點。它既能提供增量式的脈沖信號,又能通過內部寄存器或外部接口輸出當前的絕對位置值。這種編碼器在需要同時滿足高精度和快速定位的應用場合中非常有用。
  4. 單圈與多圈旋轉編碼器
    • 單圈旋轉編碼器只能測量一圈內的旋轉角度或位移量。而多圈旋轉編碼器則能夠記錄并輸出多圈旋轉的累積值,適用于需要大范圍旋轉測量的場合。

六、旋轉編碼器的選型與應用注意事項

  1. 精度與分辨率
    • 根據應用需求選擇合適的精度和分辨率。精度要求高的場合應選擇高分辨率的編碼器。
  2. 輸出信號類型
    • 根據控制系統或處理電路的兼容性,選擇合適的輸出信號類型(如TTL、HTL、RS-422等)。
  3. 工作環境
    • 考慮工作環境中的溫度、濕度、振動、電磁干擾等因素,選擇適合該環境的編碼器。
  4. 安裝方式
    • 根據機械設備的結構和空間限制,選擇合適的安裝方式(如軸向安裝、徑向安裝等)。
  5. 防護等級
    • 根據應用場合的防塵、防水需求,選擇具有相應防護等級的編碼器。
  6. 成本考慮
    • 在滿足性能要求的前提下,綜合考慮編碼器的成本,選擇性價比高的產品

七、旋轉編碼器的發展趨勢

隨著工業自動化、智能制造和物聯網技術的快速發展,旋轉編碼器作為重要的傳感器元件,也在不斷地發展和創新。未來,旋轉編碼器的發展趨勢可能包括以下幾個方面:

  1. 更高精度與更高分辨率
    • 隨著精密制造技術的進步,旋轉編碼器的精度和分辨率將得到進一步提升,以滿足更高精度的測量需求。
  2. 智能化與網絡
    • 將智能芯片網絡通信技術融入旋轉編碼器,實現數據的遠程傳輸、實時監測和智能分析,提高系統的自動化水平和智能化程度。
  3. 小型化與集成化
    • 隨著電子元器件的小型化和集成化趨勢,旋轉編碼器也將朝著更小的體積和更高的集成度方向發展,以適應更緊湊的機械設備空間。
  4. 多功能化與定制化
    • 根據不同應用場合的特定需求,開發具有多種功能和定制化特性的旋轉編碼器,以滿足用戶的個性化需求。
  5. 環保與可持續發展
    • 注重旋轉編碼器的環保性能和可持續發展能力,采用環保材料和節能設計,降低產品的生命周期成本和環境影響。

總之,旋轉編碼器作為工業自動化和精密測量領域中的重要傳感器元件,其性能和應用范圍將隨著技術的不斷進步而不斷拓展。未來,旋轉編碼器將在更多領域發揮重要作用,為智能制造和物聯網技術的發展提供有力支持。

八、帶 Arduino 的旋轉編碼器設計

1、帶 Arduino 的旋轉編碼器設計(一)

旋轉編碼器可用于計數操作,它將旋轉角度轉換為計數數字信號,可以無限制地旋轉360°并給出脈沖輸出。本文將提供基本的 Arduino 旋轉編碼器接口細節以及傳統旋轉編碼器的操作。

旋轉編碼器

image.png

該旋轉編碼器分線板有五個引腳,

  • GND → 接地電源
    • → +5V 電源
  • SW → 按鈕開關
  • DT → 編碼器引腳 B
  • CLK → 編碼器引腳 A

當軸順時針旋轉時,編碼器引腳 A 處生成與編碼器引腳 B 90° 異相的輸出脈沖。

順便說一句,當軸逆時針旋轉時,編碼器輸出引腳 A 和 B 處生成的輸出會反轉。

旋轉編碼器Arduino接口

將旋轉編碼器的電源引腳連接到Arduino板,+連接到5V,Gnd連接到Gnd。然后將 CLK(編碼器輸出 A)引腳連接到 Arduino 數字引腳 D2,將 DT(編碼器輸出 B)引腳連接到數字引腳 D1。完成連接后,上傳以下草圖以獲取串行監視器中旋轉編碼器的角度和位置。

旋轉編碼器的 Arduino 代碼

#define encoderOutA 2 // CLK pin of Rotary Enocoder
 #define encoderOutB 1 // DT pin of Rotary Enocoder
 
 int counter = 0; 
 int presentState;
 int previousState;  
 void setup() { 
   pinMode (encoderOutA,INPUT);
   pinMode (encoderOutB,INPUT);
   
   Serial.begin (9600);
      previousState = digitalRead(encoderOutA);   // Get current state of the encoderOutA
 } 
 void loop() { 
   presentState = digitalRead(encoderOutA); 
      if (presentState != previousState)
      {     
          if (digitalRead(encoderOutB) != presentState) 
          { 
       counter ++;
     } 
     else {
       counter --;
     }
     Serial.print("Position: ");
     Serial.println(counter);
   } 
   previousState = presentState; // Replace previous state of the encoderOutA with the current state
 }

在Arduino代碼中,首先定義輸出引腳并將計數初始化為0,然后聲明當前和先前的狀態變量。通過使用“IF”條件循環,獲取旋轉編碼器的當前狀態并與之前的狀態進行比較。如果沒有變化,則計數保持不變,否則,順時針旋轉時計數值增加,逆時針旋轉時計數值減少。

2、帶 Arduino 的旋轉編碼器設計(二)

介紹

為了確定旋轉軸的角位置,使用了稱為旋轉編碼器的傳感器。因此,傳感器根據旋轉產生電信號。該傳感器在包裝、紡織、印刷、機器人等不同行業有著廣泛的應用。因此,在本文中,我們將連接“旋轉編碼器與 Arduino UNO”。旋轉編碼器是電位計的現代化數字等效物,但它們的適應性更強。

概述

硬件概述

該模塊包括一個圓盤,該圓盤具有連接到公共引腳 C 的等距接觸區域,以及另外兩個接觸引腳 A 和 B。

這個特殊的模塊位于一個帶有五個引腳的分線板上,我們將在本次 Arduino 演示中使用它。第一個是輸出 A 引腳,第二個是輸出 B 引腳,第三個是 Button 引腳,最后兩個引腳是 VCC 和 GND 引腳。

工作準則

當圓盤開始逐步旋轉時,引腳A和B將與公共引腳接觸,從而產生兩個方波輸出信號。如果我們只計算信號的脈沖,我們就可以使用兩個輸出中的任何一個來確定旋轉位置。然而,如果我們希望確定旋轉方向,則必須同時分析兩個信號。

兩個輸出信號始終彼此相差 90 度。如果編碼器順時針旋轉,輸出 A 將領先于輸出 B。

旋轉編碼器和電位器的區別

旋轉電位器和編碼器之間最明顯的區別是,編碼器可以沿任一方向連續旋轉,而電位器只能順時針或逆時針旋轉一定的量,然后必須停止。

因此,當您需要知道旋鈕的確切位置時,電位器是最佳選擇。另一方面,旋轉編碼器適用于您只需要知道位置變化而不是確切位置的情況。

電路原理

image.png

Arduino代碼

// Rotary Encoder Inputs
#define CLK 2
#define DT 3
#define SW 4

int counter = 0;
int currentStateCLK;
int lastStateCLK;
String currentDir ="";
unsigned long lastButtonPress = 0;

void setup() {
	
	// Set encoder pins as inputs
	pinMode(CLK,INPUT);
	pinMode(DT,INPUT);
	pinMode(SW, INPUT_PULLUP);

	// Setup Serial Monitor
	Serial.begin(9600);

	// Read the initial state of CLK
	lastStateCLK = digitalRead(CLK);
}

void loop() {
	
	// Read the current state of CLK
	currentStateCLK = digitalRead(CLK);

	// If last and current state of CLK are different, then pulse occurred
	// React to only 1 state change to avoid double count
	if (currentStateCLK != lastStateCLK  && currentStateCLK == 1){

		// If the DT state is different than the CLK state then
		// the encoder is rotating CCW so decrement
		if (digitalRead(DT) != currentStateCLK) {
			counter --;
			currentDir ="CCW";
		} else {
			// Encoder is rotating CW so increment
			counter ++;
			currentDir ="CW";
		}

		Serial.print("Direction: ");
		Serial.print(currentDir);
		Serial.print(" | Counter: ");
		Serial.println(counter);
	}

	// Remember last CLK state
	lastStateCLK = currentStateCLK;

	// Read the button state
	int btnState = digitalRead(SW);

	//If we detect LOW signal, button is pressed
	if (btnState == LOW) {
		//if 50ms have passed since last LOW pulse, it means that the
		//button has been pressed, released and pressed again
		if (millis() - lastButtonPress > 50) {
			Serial.println("Button pressed!");
		}

		// Remember last button press event
		lastButtonPress = millis();
	}

	// Put in a slight delay to help debounce the reading
	delay(1);
}

工作說明

要了解Arduino UNO的旋轉編碼器,請根據電路圖連接電路或按照連接表進行連接。然后在Arduino IDE中編寫上面給出的代碼,并將其上傳到ARDUINO UNO中。 Arduino 處理代碼并控制編碼器的輸出。因此,您將根據您的代碼觀察旋轉編碼器的旋轉。

代碼說明

  • 首先,定義編碼器的引腳,連接到Arduino的不同引腳。例如,CLK引腳連接到Arduino的引腳2,DT連接到引腳3,SW連接到引腳4。然后定義將在代碼中使用的不同變量。變量計數器代表旋轉電位器旋鈕時的計數。變量currentStateCLKlastStateCLK用于保持 CLK 輸出的狀態。 currentDir 變量已定義為稍后用于在監視器上打印方向。并且,lastButtonPress被定義為消除開關抖動。
  • 在 void 設置中,我們已將編碼器的引腳聲明為輸入。此外,為了從 CLK 引腳讀取值,我們提供了digitalRead (CLK ) 函數,并將該讀數存儲在變量lastStateCLK中。
  • 在 void 循環中,為了從 CLK 引腳讀取當前狀態,我們再次提供函數 digitalRead (CLK), 并將其存儲在currentStateCLK中。然后我們給出if語句,將lastStateCLKcurrentStateCLK進行比較,以確定旋轉的狀態方向。如果不同,則說明旋鈕為逆時針方向。然后我們將電流設置為 CWW。如果相等,則說明旋鈕為順時針方向。然后我們將 currentDir 設置為 CW。之后,我們用當前狀態更新lastStateCLK。然后我們讀取開關按鈕狀態并給出 if 函數。并且,根據該函數,如果按鈕保持低電平超過 50 毫秒,則會打印Button Pressed在串行監視器上。 ## 應用及用途
  • 在傳送帶中控制速度和方向。
  • 它可用于在各種電子項目中將大量輸入壓縮為少量輸出。
  • 擠壓機、壓力機、焊機和不同的自動化金屬成型機械。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2551

    文章

    51097

    瀏覽量

    753529
  • 旋轉編碼器
    +關注

    關注

    5

    文章

    159

    瀏覽量

    25956
  • Arduino
    +關注

    關注

    188

    文章

    6469

    瀏覽量

    187056
收藏 人收藏

    評論

    相關推薦

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

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

    旋轉編碼器的作用及工作原理

    準確解析編碼器的數字輸出。本文將介紹旋轉編碼器的作用及其工作原理。然后說明如何解釋其信號,最后再介紹幾個編碼器解決方案及其實際應用。
    發表于 02-22 06:09

    旋轉編碼器的原理和特點有哪些

    旋轉編碼器工作原理一、旋轉編碼器的原理和特點旋轉
    發表于 07-06 07:56

    旋轉編碼器工作原理是什么

    旋轉編碼器的引腳CLK(A相)DATA(B相)SWITCHVCCGND工作原理旋轉編碼器工作原理
    發表于 01-12 07:31

    旋轉編碼器,旋轉編碼器是什么意思

    旋轉編碼器,旋轉編碼器是什么意思 旋轉編碼器概要
    發表于 03-03 15:27 ?2380次閱讀

    旋轉編碼器測量_旋轉編碼器安裝方式

    本文主要介紹了旋轉編碼器測量及安裝方法。旋轉編碼器檢測直線位移方法具體如下:使用“彈性連軸”將旋轉
    發表于 08-06 11:40 ?3953次閱讀
    <b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>測量_<b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>安裝方式

    旋轉編碼器拆卸方法_旋轉編碼器型號說明

    本文首先介紹了旋轉編碼器拆卸方法,其次闡述了旋轉編碼器更換步驟,最后介紹了旋轉編碼器型號說明。
    發表于 08-06 11:48 ?1.8w次閱讀

    旋轉編碼器能直接換嗎_旋轉編碼器更換注意事項

    本文首先介紹了旋轉編碼器更換步驟,其次介紹了旋轉編碼器更換注意事項,最后介紹了旋轉編碼器替換原則
    發表于 08-06 14:18 ?9783次閱讀

    旋轉編碼器如何工作?有哪些類型?

    在本文中,我們將了解不同類型的旋轉編碼器及其工作原理。我們還將它與 Arduino 連接,并通過旋轉編碼
    的頭像 發表于 11-10 16:04 ?5776次閱讀
    <b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>如何<b class='flag-5'>工作</b>?有哪些類型?

    什么是旋轉編碼器 旋轉編碼器工作原理

    旋轉編碼器是一種常見的傳感,它能夠通過檢測旋轉軸的轉動實現實時位置監測與控制。它具有高精度、長壽命、可重復性高、體積小等特點,因此在機器人
    發表于 06-09 10:16 ?2320次閱讀
    什么是<b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b> <b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>的<b class='flag-5'>工作原理</b>

    旋轉編碼器是什么?淺讀旋轉編碼器工作原理特點及應用

    旋轉編碼器是什么?淺讀旋轉編碼器工作原理特點及應用:旋轉
    的頭像 發表于 05-29 09:21 ?3457次閱讀
    <b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>是什么?淺讀<b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b><b class='flag-5'>工作原理</b>與<b class='flag-5'>特點</b>及應用

    旋轉編碼器能直接換嗎_旋轉編碼器更換注意事項

    旋轉編碼器更換步驟第一步,卸開電機后蓋,編碼器的后蓋。第二步,松開編碼器安裝螺絲。第三步,旋轉電機轉子軸,使
    的頭像 發表于 11-12 08:07 ?1685次閱讀
    <b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>能直接換嗎_<b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>更換注意事項

    旋轉編碼器工作原理旋轉編碼器的作用功能及應用

    旋轉編碼器是用于測量軸或軸旋轉的組件。它們通常用于音頻設備、DIY 游戲控制中的音量旋鈕,或用作不同 Arduino 或 Raspberr
    的頭像 發表于 02-11 09:53 ?5731次閱讀
    <b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>的<b class='flag-5'>工作原理</b>,<b class='flag-5'>旋轉</b><b class='flag-5'>編碼器</b>的作用功能及應用

    旋轉編碼器的常見類型

    詳細介紹旋轉編碼器的常見類型,包括增量式編碼器和絕對式編碼器兩大類,并對它們的特點工作原理、應
    的頭像 發表于 05-29 15:59 ?933次閱讀

    旋轉編碼器工作原理特點

    旋轉編碼器,作為現代工業自動化系統中不可或缺的一部分,其工作原理特點對于理解其應用及優化系統性能具有重要意義。本文將詳細闡述旋轉
    的頭像 發表于 05-29 16:01 ?1259次閱讀
    主站蜘蛛池模板: 日本三级视频在线观看| 欧美xxxxx喷潮| 精品欧美一区二区三区| 午夜精品在线观看| 黄色午夜网站| 四虎影视免费看| 爱啪网站| 欧美草逼| 日韩特级毛片| 午夜免费观看| 视频一区二区在线观看| 日本成人在线网址| 天天操天| a欧美视频| 国产一区二区三区在线观看影院| 免费毛片软件| 日本tv欧美tv天堂| 真人实干一级毛片aa免费| 狠狠色婷婷丁香综合久久韩国| 国产精品五月天| aa视频免费| 色噜噜噜噜色| 天天干天天插天天操| 狠狠干精品| 国产伦子一区二区三区四区| 亚洲人成在线精品不卡网| 涩五月婷婷| 天天操2023| 亚洲四虎| 亚洲第一免费播放区| 日本不卡一区在线| 好爽毛片一区二区三区四| 在线视频免费观看| 日本三级香港三级人妇99视| 五月婷婷综合网| 99久久精品免费看国产免费| 国产精品久久久久久久久| 婷婷久久综合九色综合九七| 国产一二三区在线| 在线成人精品国产区免费| 女人被狂躁视频免费网站|