簡述編碼器和譯碼器的區別「什麼是編碼器和譯碼器」

  編碼器是科技發展的結果,是應用廣泛的工業設備了,但是編碼器具體有哪些作用?編碼器應用在哪些行業?我想還有很多工業新手們還不能熟知的,現在就讓編碼器生產廠家時碩電子(gdshishuo.com)小編在這裡簡單為大家介紹一下吧!結合了一些帖子以及應用的過程中出現的一些問題,然後歸納出來的一個總結吧。

編碼器概述原理及應用特點是什麼?

第一,編碼器概述

  編碼器是一種將角位移或者角速度轉換成一連串電數字脈衝的旋轉式傳感器,我們可以通過編碼器測量到底位移或者速度信息。編碼器從輸出數據類型上分,可以分為增量式編碼器和絕對式編碼器。

  從編碼器檢測原理上來分,還可以分為光學式、磁式、感應式、電容式。常見的是光電編碼器(光學式)和霍爾編碼器(磁式)。

第二,編碼器原理

光電編碼器是一種通過光電轉換將輸出軸上的機械幾何位移轉換為脈衝或數字量的傳感器。光電編碼器由光碼盤和光電檢測裝置組成。光碼盤是一個具有一定直徑的圓盤,並均勻地開有若干個矩形孔。由於光電編碼器與電機同軸,當電機轉動時,檢測裝置檢測並輸出若干個脈衝信號。為了判斷旋轉方向,一般輸出兩組具有一定相位差的方波信號。

  霍爾編碼器是一種通過磁電轉換將輸出軸上的機械幾何位移轉換為脈衝或數字量的傳感器。霍爾編碼器由霍爾碼盤和霍爾元件組成。霍爾碼盤在一定直徑的圓盤上以不同的磁極等距排列。霍爾碼盤與電機同軸。當電機轉動時,霍爾元件檢測並輸出幾個脈衝信號。為了判斷旋轉方向,一般輸出兩組具有一定相位差的方波信號。

第三、電機編碼器接線

  然後這裡是平衡車上的編碼器。

  輪子上有一根線,最靠邊的兩根是電機電源線,由tb6612驅動,可以用來控制電機的速度和轉向。然後中間四個是編碼器接口。

  注意~使用的兩個編碼器接反了。如果測試時輪子同向旋轉,計數值相反,只需改變AB相即可。或者在讀取的其中一個數字前加一個減號。

  然後編碼器電源是5v,電源問題,這個是增量輸出霍爾編碼器。編碼器有AB相輸出,不僅能測速度,還能判別旋轉方向。根據上圖中的接線說明,我們可以看到,我們只需要給編碼器電源提供5V的電壓,電機轉動時就可以通過AB相輸出方波信號。編碼器自帶上拉電阻,無需外接上拉,直接接單片機IO讀取即可。

  當然,這並不意味着編碼器必須使用定時器作為接口。有些微控制器沒有編碼器接口的功能,也可以用外部中斷代替。將編碼器A相的輸出接到單片機的外部中斷輸入口,這樣可以通過跳變沿觸發中斷,然後在相應的外部中斷服務函數中,再用B相的電平來判斷正向和反向旋轉。當A相當於一個過渡沿時,B相的高電平為正轉,低電平為反轉。那麼普通的io口也可以處理。

  但是使用stm32作為編碼器接口的好處是計數更智能,允許接口抖動而不影響結果。而且配置代碼很多,拉過來用就行了。所以下面介紹stm32定時器作為編碼器接口

第四、定時器作為編碼器接口的配置方法

  1.計數模式

  對應上面兩張圖 現在,顯然用T1和T2一起計數更準確,也就是達到“四倍頻”

   2、過濾級別

  3、計數重載值

  是給“
TIM_TimeBaseStructure.TIM_Period”賦值,

  這些都寫在代碼的注釋里

第五、Encoder應用注意點

  1、編碼器有速度上限。如果超過這個上限,它將無法正常工作。這是硬件限制。原則上,線數越多,速度越低。選擇類型時應注意這一點。編碼器的輸出一般是漏極開路的,所以單片機的io必須上拉輸入狀態。

   2、定時器初始化後,任何時候CNT寄存器的值就是編碼器的位置信息。正向旋轉時增加,反向旋轉時減少。這部分不需要軟件干預。初始化時給定的TIM_Period的值應該是碼盤整圈的刻度值,經過減法溢出後會自動修正為這個數。如果添加的值超過此值,它將返回到 0。

   3、如果要擴展到多圈計數,需要一個溢出中斷。

   4、編碼器各定時器的輸入引腳可由軟件設置和過濾

  5、如果應用中沒有絕對位置信號或者初始化完成後沒有收到絕對位置信號前的計數,只能是相對計數。接收到絕對位置信號後,再次修改CNT 的值。編碼器一般都有零位信號,可以結合定時器捕捉輸入。上電後,需要來回移動才能找到這個位置。

   6、即使有過濾器計數值,偶爾也會出現錯誤。一圈多數或少數是正常的,尤其是速度比較高的時候,有絕對位置信號進行修正是非常有必要的。絕對位置信號不需要在零位點,接收到該信號後將CNT修正為固定值即可。

   7、編碼器啟動定時器的輸入中斷可達每個步數都被處理,但在高速運行期間您可能無法處理它。

  光電編碼器是一種通過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或數字量的傳感器。光電編碼器是由光碼盤和光電檢測裝置組成。光碼盤是在一 定直徑的圓板上等分地開通若干個長方形孔。由於光電碼盤與電動機同軸,電動機旋轉時,檢測裝置檢測輸出若干脈衝信號,為判斷轉向,一般輸出兩組存在一 定相位差的方波信號。

  霍爾編碼器是一種通過磁電轉換將輸出軸上的機械幾何位移量轉換成脈衝或數字量的傳感器。霍爾編碼器是由霍爾碼盤和霍爾元件組成。霍爾碼盤是在一 定直徑的圓板上等分地布置有不同的磁極。霍爾碼盤與電動機同軸,電動機旋轉時,霍爾元件檢測輸出若干脈衝信號,為判斷轉向,一般輸出兩組存在一定相位差的方波信號。

  三,電機編碼器接線

  然後這下面就是講的平衡車上的編碼器啦。

  車輪上有根線,最邊上的兩根是電機電源線,配合tb6612驅動,可用來控制電機的轉速和轉向。然後中間四根是編碼器接口。

  要注意哦~用的是兩個編碼器是反過來的,如果測試時車輪同向轉,計數值互為相反數,就把AB相調換一下就好啦。或者把其中一個讀到的數前面加個符號。

  然後編碼器供電是5v,供電問題,這是一款增量式輸出的霍爾編碼器。編碼器有 AB 相輸出,所以不僅可以測 速,還可以辨別轉向。根據上圖的接線說明可以看到,我們只需給編碼器電源5V 供電,在電機轉動的時候即可通過 AB 相輸出方波信號。編碼器自帶了上拉電阻,所以無需外部上拉,可以直接連接到單片機 IO 讀取。

  當然不是說編碼器就一定要用定時器做接口,有些單片機沒有編碼器接口的功能,也是可以用外部中斷來代替。把編碼器 A 相輸出接到單片機的外部中斷輸入口,這樣 就可通過跳變沿觸發中斷,然後在對應的外部中斷服務函數裡面,然後通過 B 相的電平來確定正轉反轉。A相當於一個跳變沿的時候,B相高電平就為是正轉,低電平就為是反轉。然後,普通io口也是可以處理的。

  but用stm32做編碼器接口的好處是計數比較智能,容許接口出現抖動而不影響結果。而且配置的代碼超級多,拉過來就可以用啦。所以下面就是stm32定時器做編碼器接口的介紹啦

  四,定時器做編碼器接口的配置方式

  1,計數模式

  如上兩張圖對應着來看吶,顯然用T1,T2共同計數比較精確,也就是實現了“四倍頻”

  2,濾波等級

  3,計數重裝載值

  就是對“
TIM_TimeBaseStructure.TIM_Period”賦值,

  這些都有寫在代碼的注釋裡面

  六,編碼器應用注意點

  1.編碼器有個轉速上限,超過這個上限是不能正常工作的,這個是硬件的限制,原則上線數越多轉速就越低,這點在選型時要注意,編碼器的輸出一般是開漏的,所以單片機的io一定要上拉輸入狀態。

  2.定時器初始化好以後,任何時候CNT寄存器的值就是編碼器的位置信息,正轉他會加反轉他會減這部分是不需要軟件干預的,初始化時給的TIM_Period 值應該是碼盤整圈的刻度值,在減溢出會自動修正為這個數。加超過此數值就回0.

  3.如果要擴展成多圈計數需要溢出中斷像樓主說的,程序上圈計數加減方向位就行了。

  4.編碼器每個定時器的輸入腳可以通過軟件設定濾波

  5.應用中如果沒有絕對位置信號或者初始化完成後還沒有收到絕對位置信號前的計數只能是相對計數。收到絕對位置信號後重新修改一次CNT的值就行了。碼盤一般都有零位置信號,結合到定時器捕獲輸入就行。上電以後要往返運動一下找到這個位置。

  6.即便有濾波計數值偶爾也會有出錯誤的情況,一圈多計一個或少計一個數都是很正常的特別是轉速比較高的時候尤其明顯,有個絕對位置信號做修正是很有必要的。絕對位置信號不需要一定在零位置點,收到這個信號就將CNT修正為一個固定的數值即可。

  7.編碼器開啟定時器的輸入中斷可以達到每個步計數都作處理的效果,但是高速運轉的時候你可能處理不過來。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/255602.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-15 12:28
下一篇 2024-12-15 12:28

相關推薦

發表回復

登錄後才能評論