HENGSTLER編碼器概述原理及應(yīng)用特點(diǎn)是什么?
編碼器是科技發(fā)展的結(jié)果,是應(yīng)用廣泛的工業(yè)設(shè)備了,但是HENGSTLER編碼器具體有哪些作用?編碼器應(yīng)用在哪些行業(yè)?我想還有很多工業(yè)新手們還不能熟知的。
編碼器的作用(編碼器概述原理及應(yīng)用特點(diǎn)是什么?)
編碼器概述
HENGSTLER編碼器是一種將角位移或者角速度轉(zhuǎn)換成一連串電數(shù)字脈沖的旋轉(zhuǎn)式傳感器,我們可以通過亨士樂編碼器測(cè)量到底位移或者速度信息。編碼器從輸出數(shù)據(jù)類型上分,可以分為增量式編碼器和絕對(duì)式編碼器。
從編碼器檢測(cè)原理上來分,還可以分為光學(xué)式、磁式、感應(yīng)式、電容式。常見的是光電編碼器(光學(xué)式)和編碼器(磁式)。
編碼器原理
光電編碼器是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移轉(zhuǎn)換為脈沖或數(shù)字量的傳感器。亨士樂光電編碼器由光碼盤和光電檢測(cè)裝置組成。光碼盤是一個(gè)具有一定直徑的圓盤,并均勻地開有若干個(gè)矩形孔。由于光電編碼器與電機(jī)同軸,當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí),檢測(cè)裝置檢測(cè)并輸出若干個(gè)脈沖信號(hào)。為了判斷旋轉(zhuǎn)方向,一般輸出兩組具有一定相位差的方波信號(hào)。
編碼器是一種通過磁電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移轉(zhuǎn)換為脈沖或數(shù)字量的傳感器。HENGSTLER編碼器由霍爾碼盤和霍爾元件組成?;魻柎a盤在一定直徑的圓盤上以不同的磁極等距排列?;魻柎a盤與電機(jī)同軸。當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí),霍爾元件檢測(cè)并輸出幾個(gè)脈沖信號(hào)。為了判斷旋轉(zhuǎn)方向,一般輸出兩組具有一定相位差的方波信號(hào)。
電機(jī)編碼器接線
然后這里是平衡車上的編碼器。
輪子上有一根線,最靠邊的兩根是電機(jī)電源線,由tb6612驅(qū)動(dòng),可以用來控制電機(jī)的速度和轉(zhuǎn)向。然后中間四個(gè)是編碼器接口。
注意~使用的兩個(gè)編碼器接反了。如果測(cè)試時(shí)輪子同向旋轉(zhuǎn),計(jì)數(shù)值相反,只需改變AB相即可。或者在讀取的其中一個(gè)數(shù)字前加一個(gè)減號(hào)。
然后編碼器電源是5v,電源問題,這個(gè)是增量輸出編碼器。編碼器有AB相輸出,不僅能測(cè)速度,還能判別旋轉(zhuǎn)方向。根據(jù)上圖中的接線說明,我們可以看到,我們只需要給編碼器電源提供5V的電壓,電機(jī)轉(zhuǎn)動(dòng)時(shí)就可以通過AB相輸出方波信號(hào)。編碼器自帶上拉電阻,無需外接上拉,直接接單片機(jī)IO讀取即可。
當(dāng)然,這并不意味著編碼器必須使用定時(shí)器作為接口。有些微控制器沒有HENGSTLER編碼器接口的功能,也可以用外部中斷代替。將編碼器A相的輸出接到單片機(jī)的外部中斷輸入口,這樣可以通過跳變沿觸發(fā)中斷,然后在相應(yīng)的外部中斷服務(wù)函數(shù)中,再用B相的電平來判斷正向和反向旋轉(zhuǎn)。當(dāng)A相當(dāng)于一個(gè)過渡沿時(shí),B相的高電平為正轉(zhuǎn),低電平為反轉(zhuǎn)。那么普通的io口也可以處理。
但是使用stm32作為編碼器接口的好處是計(jì)數(shù)更智能,允許接口抖動(dòng)而不影響結(jié)果。而且配置代碼很多,拉過來用就行了。所以下面介紹stm32定時(shí)器作為編碼器接口
定時(shí)器作為編碼器接口的配置方法
1.計(jì)數(shù)模式
現(xiàn)在,顯然用T1和T2一起計(jì)數(shù)更準(zhǔn)確,也就是達(dá)到“四倍頻”
2、過濾級(jí)別
3、計(jì)數(shù)重載值
是給“TIM_TimeBaseStructure.TIM_Period”賦值,
這些都寫在代碼的注釋里
編碼器的應(yīng)用注意要點(diǎn)
1、編碼器有速度上限。如果超過這個(gè)上限,它將無法正常工作。這是硬件限制。原則上,線數(shù)越多,速度越低。選擇類型時(shí)應(yīng)注意這一點(diǎn)。亨士樂編碼器的輸出一般是漏極開路的,所以單片機(jī)的io必須上拉輸入狀態(tài)。
2、定時(shí)器初始化后,任何時(shí)候CNT寄存器的值就是編碼器的位置信息。正向旋轉(zhuǎn)時(shí)增加,反向旋轉(zhuǎn)時(shí)減少。這部分不需要軟件干預(yù)。初始化時(shí)給定的TIM_Period的值應(yīng)該是碼盤整圈的刻度值,經(jīng)過減法溢出后會(huì)自動(dòng)修正為這個(gè)數(shù)。如果添加的值超過此值,它將返回到 0。
3、如果要擴(kuò)展到多圈計(jì)數(shù),需要一個(gè)溢出中斷。
4、編碼器各定時(shí)器的輸入引腳可由軟件設(shè)置和過濾
5、如果應(yīng)用中沒有絕對(duì)位置信號(hào)或者初始化完成后沒有收到絕對(duì)位置信號(hào)前的計(jì)數(shù),只能是相對(duì)計(jì)數(shù)。接收到絕對(duì)位置信號(hào)后,再次修改CNT 的值。亨士樂編碼器一般都有零位信號(hào),可以結(jié)合定時(shí)器捕捉輸入。上電后,需要來回移動(dòng)才能找到這個(gè)位置。
6、即使有過濾器計(jì)數(shù)值,偶爾也會(huì)出現(xiàn)錯(cuò)誤。一圈多數(shù)或少數(shù)是正常的,尤其是速度比較高的時(shí)候,有絕對(duì)位置信號(hào)進(jìn)行修正是非常有必要的。絕對(duì)位置信號(hào)不需要在零位點(diǎn),接收到該信號(hào)后將CNT修正為固定值即可。
7、編碼器啟動(dòng)定時(shí)器的輸入中斷可達(dá)每個(gè)步數(shù)都被處理,但在高速運(yùn)行期間您可能無法處理它。
光電編碼器是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器。光電編碼器是由光碼盤和光電檢測(cè)裝置組成。光碼盤是在一 定直徑的圓板上等分地開通若干個(gè)長方形孔。由于光電碼盤與電動(dòng)機(jī)同軸,電動(dòng)機(jī)旋轉(zhuǎn)時(shí),檢測(cè)裝置檢測(cè)輸出若干脈沖信號(hào),為判斷轉(zhuǎn)向,一般輸出兩組存在一 定相位差的方波信號(hào)。
HENGSTLER編碼器是一種通過磁電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器。編碼器是由霍爾碼盤和霍爾元件組成。霍爾碼盤是在一 定直徑的圓板上等分地布置有不同的磁極?;魻柎a盤與電動(dòng)機(jī)同軸,電動(dòng)機(jī)旋轉(zhuǎn)時(shí),霍爾元件檢測(cè)輸出若干脈沖信號(hào),為判斷轉(zhuǎn)向,一般輸出兩組存在一定相位差的方波信號(hào)。
電機(jī)編碼器接線
然后這下面就是講的平衡車上的編碼器啦。
車輪上有根線,最邊上的兩根是電機(jī)電源線,配合tb6612驅(qū)動(dòng),可用來控制電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向。然后中間四根是編碼器接口。
要注意哦~用的是兩個(gè)編碼器是反過來的,如果測(cè)試時(shí)車輪同向轉(zhuǎn),計(jì)數(shù)值互為相反數(shù),就把AB相調(diào)換一下就好啦。或者把其中一個(gè)讀到的數(shù)前面加個(gè)符號(hào)。
然后HENGSTLER編碼器供電是5v,供電問題,這是一款增量式輸出的編碼器。編碼器有 AB 相輸出,所以不僅可以測(cè) 速,還可以辨別轉(zhuǎn)向。根據(jù)上圖的接線說明可以看到,我們只需給編碼器電源5V 供電,在電機(jī)轉(zhuǎn)動(dòng)的時(shí)候即可通過 AB 相輸出方波信號(hào)。編碼器自帶了上拉電阻,所以無需外部上拉,可以直接連接到單片機(jī) IO 讀取。
當(dāng)然不是說編碼器就一定要用定時(shí)器做接口,有些單片機(jī)沒有亨士樂編碼器接口的功能,也是可以用外部中斷來代替。把編碼器 A 相輸出接到單片機(jī)的外部中斷輸入口,這樣 就可通過跳變沿觸發(fā)中斷,然后在對(duì)應(yīng)的外部中斷服務(wù)函數(shù)里面,然后通過 B 相的電平來確定正轉(zhuǎn)反轉(zhuǎn)。A相當(dāng)于一個(gè)跳變沿的時(shí)候,B相高電平就為是正轉(zhuǎn),低電平就為是反轉(zhuǎn)。然后,普通io口也是可以處理的。
但是用stm32做編碼器接口的好處是計(jì)數(shù)比較智能,容許接口出現(xiàn)抖動(dòng)而不影響結(jié)果。而且配置的代碼超級(jí)多,拉過來就可以用啦。所以下面就是stm32定時(shí)器做編碼器接口的介紹啦
定時(shí)器做編碼器接口的配置方式
1,計(jì)數(shù)模式
如上兩張圖對(duì)應(yīng)著來看吶,顯然用T1,T2共同計(jì)數(shù)比較精確,也就是實(shí)現(xiàn)了“四倍頻”
2,濾波等級(jí)
3,計(jì)數(shù)重裝載值
就是對(duì)“TIM_TimeBaseStructure.TIM_Period”賦值,
這些都有寫在代碼的注釋里面
編碼器應(yīng)用注意點(diǎn)
1.編碼器有個(gè)轉(zhuǎn)速上限,超過這個(gè)百思特網(wǎng)上限是不能正常工作的,這個(gè)是硬件的限制,原則上線數(shù)越多轉(zhuǎn)速就越低,這點(diǎn)在選型時(shí)要注意,編碼器的輸出一般是開漏的,所以單片機(jī)的io一定要上拉輸入狀態(tài)。
2.定時(shí)器初始化好以后,任何時(shí)候CNT寄存器的值就是亨士樂編碼器的位置信息,正轉(zhuǎn)他會(huì)加反轉(zhuǎn)他會(huì)減這部分是不需要軟件干預(yù)的,初始化時(shí)給的TIM_Period 值應(yīng)該是碼盤整圈的刻度值,在減溢出會(huì)自動(dòng)修正為這個(gè)數(shù)。加超過此數(shù)值就回0.
3.如果要擴(kuò)展成多圈計(jì)數(shù)需要溢出中斷像樓主說的,程序上圈計(jì)數(shù)加減方向位就行了。
4.編碼器每個(gè)定時(shí)器的輸入腳可以通過軟件設(shè)定濾波
5.應(yīng)用中如果沒有絕對(duì)位置信號(hào)或者初始化完成后還沒有收到絕對(duì)位置信號(hào)前的計(jì)數(shù)只能是相對(duì)計(jì)數(shù)。收到絕百思特網(wǎng)對(duì)位置信號(hào)后重新修改一次CNT的值就行了。碼盤一般都有零位置信號(hào),結(jié)合到定時(shí)器捕獲輸入就行。上電以后要往返運(yùn)動(dòng)一下找到這個(gè)位置。
6.即便有濾波計(jì)數(shù)值偶爾也會(huì)有出錯(cuò)誤的情況,一圈多計(jì)一個(gè)或少計(jì)一個(gè)數(shù)都是很正常的特別是轉(zhuǎn)速比較高的時(shí)候尤其明顯,有個(gè)絕對(duì)位置信號(hào)做修正是很有必要的。絕對(duì)位置信號(hào)不需要一定在零位置點(diǎn),收到這個(gè)信號(hào)就將CNT修正為一個(gè)固定的數(shù)值即可。
7.編碼器開啟定時(shí)器的輸入中斷可以達(dá)到每個(gè)步計(jì)數(shù)都作處理的效果,但是高速運(yùn)轉(zhuǎn)的時(shí)候你可能處理不過來。
了解更多編碼器相關(guān)知識(shí),敬請(qǐng)關(guān)注
亨士樂編碼器國內(nèi)正規(guī)授權(quán)代理西安德伍拓自動(dòng)化傳動(dòng)系統(tǒng)有限公司網(wǎng)站。公司技術(shù)團(tuán)隊(duì)為您免費(fèi)提供Hengstler編碼器的選型、安裝、調(diào)試、保養(yǎng)等技術(shù)指導(dǎo)服務(wù),盡量避免企業(yè)因?yàn)榫幋a器技術(shù)人員的短缺帶來的損失,采取“線上+線下”服務(wù)的服務(wù)形式,幫助企業(yè)解決技術(shù)難題。