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)式傳感器,我們可以通過亨士樂編碼器測量到底位移或者速度信息。編碼器從輸出數(shù)據(jù)類型上分,可以分為增量式編碼器和絕對式編碼器。
從編碼器檢測原理上來分,還可以分為光學(xué)式、磁式、感應(yīng)式、電容式。常見的是光電編碼器(光學(xué)式)和編碼器(磁式)。
編碼器原理
光電編碼器是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移轉(zhuǎn)換為脈沖或數(shù)字量的傳感器。亨士樂光電編碼器由光碼盤和光電檢測裝置組成。光碼盤是一個(gè)具有一定直徑的圓盤,并均勻地開有若干個(gè)矩形孔。由于光電編碼器與電機(jī)同軸,當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí),檢測裝置檢測并輸出若干個(gè)脈沖信號。為了判斷旋轉(zhuǎn)方向,一般輸出兩組具有一定相位差的方波信號。
編碼器是一種通過磁電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移轉(zhuǎn)換為脈沖或數(shù)字量的傳感器。HENGSTLER編碼器由霍爾碼盤和霍爾元件組成?;魻柎a盤在一定直徑的圓盤上以不同的磁極等距排列?;魻柎a盤與電機(jī)同軸。當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí),霍爾元件檢測并輸出幾個(gè)脈沖信號。為了判斷旋轉(zhuǎn)方向,一般輸出兩組具有一定相位差的方波信號。
電機(jī)編碼器接線
然后這里是平衡車上的編碼器。
輪子上有一根線,最靠邊的兩根是電機(jī)電源線,由tb6612驅(qū)動(dòng),可以用來控制電機(jī)的速度和轉(zhuǎn)向。然后中間四個(gè)是編碼器接口。
注意~使用的兩個(gè)編碼器接反了。如果測試時(shí)輪子同向旋轉(zhuǎn),計(jì)數(shù)值相反,只需改變AB相即可?;蛘咴谧x取的其中一個(gè)數(shù)字前加一個(gè)減號。
然后編碼器電源是5v,電源問題,這個(gè)是增量輸出編碼器。編碼器有AB相輸出,不僅能測速度,還能判別旋轉(zhuǎn)方向。根據(jù)上圖中的接線說明,我們可以看到,我們只需要給編碼器電源提供5V的電壓,電機(jī)轉(zhuǎn)動(dòng)時(shí)就可以通過AB相輸出方波信號。編碼器自帶上拉電阻,無需外接上拉,直接接單片機(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、過濾級別
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)用中沒有絕對位置信號或者初始化完成后沒有收到絕對位置信號前的計(jì)數(shù),只能是相對計(jì)數(shù)。接收到絕對位置信號后,再次修改CNT 的值。亨士樂編碼器一般都有零位信號,可以結(jié)合定時(shí)器捕捉輸入。上電后,需要來回移動(dòng)才能找到這個(gè)位置。
6、即使有過濾器計(jì)數(shù)值,偶爾也會(huì)出現(xiàn)錯(cuò)誤。一圈多數(shù)或少數(shù)是正常的,尤其是速度比較高的時(shí)候,有絕對位置信號進(jìn)行修正是非常有必要的。絕對位置信號不需要在零位點(diǎn),接收到該信號后將CNT修正為固定值即可。
7、編碼器啟動(dòng)定時(shí)器的輸入中斷可達(dá)每個(gè)步數(shù)都被處理,但在高速運(yùn)行期間您可能無法處理它。
光電編碼器是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器。光電編碼器是由光碼盤和光電檢測裝置組成。光碼盤是在一 定直徑的圓板上等分地開通若干個(gè)長方形孔。由于光電碼盤與電動(dòng)機(jī)同軸,電動(dòng)機(jī)旋轉(zhuǎn)時(shí),檢測裝置檢測輸出若干脈沖信號,為判斷轉(zhuǎn)向,一般輸出兩組存在一 定相位差的方波信號。
HENGSTLER編碼器是一種通過磁電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器。編碼器是由霍爾碼盤和霍爾元件組成?;魻柎a盤是在一 定直徑的圓板上等分地布置有不同的磁極。霍爾碼盤與電動(dòng)機(jī)同軸,電動(dòng)機(jī)旋轉(zhuǎn)時(shí),霍爾元件檢測輸出若干脈沖信號,為判斷轉(zhuǎn)向,一般輸出兩組存在一定相位差的方波信號。
電機(jī)編碼器接線
然后這下面就是講的平衡車上的編碼器啦。
車輪上有根線,最邊上的兩根是電機(jī)電源線,配合tb6612驅(qū)動(dòng),可用來控制電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向。然后中間四根是編碼器接口。
要注意哦~用的是兩個(gè)編碼器是反過來的,如果測試時(shí)車輪同向轉(zhuǎn),計(jì)數(shù)值互為相反數(shù),就把AB相調(diào)換一下就好啦?;蛘甙哑渲幸粋€(gè)讀到的數(shù)前面加個(gè)符號。
然后HENGSTLER編碼器供電是5v,供電問題,這是一款增量式輸出的編碼器。編碼器有 AB 相輸出,所以不僅可以測 速,還可以辨別轉(zhuǎn)向。根據(jù)上圖的接線說明可以看到,我們只需給編碼器電源5V 供電,在電機(jī)轉(zhuǎn)動(dòng)的時(shí)候即可通過 AB 相輸出方波信號。編碼器自帶了上拉電阻,所以無需外部上拉,可以直接連接到單片機(jī) IO 讀取。
當(dāng)然不是說編碼器就一定要用定時(shí)器做接口,有些單片機(jī)沒有亨士樂編碼器接口的功能,也是可以用外部中斷來代替。把編碼器 A 相輸出接到單片機(jī)的外部中斷輸入口,這樣 就可通過跳變沿觸發(fā)中斷,然后在對應(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é)果。而且配置的代碼超級多,拉過來就可以用啦。所以下面就是stm32定時(shí)器做編碼器接口的介紹啦
定時(shí)器做編碼器接口的配置方式
1,計(jì)數(shù)模式
如上兩張圖對應(yīng)著來看吶,顯然用T1,T2共同計(jì)數(shù)比較精確,也就是實(shí)現(xiàn)了“四倍頻”
2,濾波等級
3,計(jì)數(shù)重裝載值
就是對“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)用中如果沒有絕對位置信號或者初始化完成后還沒有收到絕對位置信號前的計(jì)數(shù)只能是相對計(jì)數(shù)。收到絕百思特網(wǎng)對位置信號后重新修改一次CNT的值就行了。碼盤一般都有零位置信號,結(jié)合到定時(shí)器捕獲輸入就行。上電以后要往返運(yùn)動(dòng)一下找到這個(gè)位置。
6.即便有濾波計(jì)數(shù)值偶爾也會(huì)有出錯(cuò)誤的情況,一圈多計(jì)一個(gè)或少計(jì)一個(gè)數(shù)都是很正常的特別是轉(zhuǎn)速比較高的時(shí)候尤其明顯,有個(gè)絕對位置信號做修正是很有必要的。絕對位置信號不需要一定在零位置點(diǎn),收到這個(gè)信號就將CNT修正為一個(gè)固定的數(shù)值即可。
7.編碼器開啟定時(shí)器的輸入中斷可以達(dá)到每個(gè)步計(jì)數(shù)都作處理的效果,但是高速運(yùn)轉(zhuǎn)的時(shí)候你可能處理不過來。
了解更多編碼器相關(guān)知識,敬請關(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ù)難題。