如何實(shí)現(xiàn)旋轉(zhuǎn)編碼器的電路設(shè)計(jì)?
旋轉(zhuǎn)編碼器它是一種將旋轉(zhuǎn)位移轉(zhuǎn)換成一串?dāng)?shù)字脈沖信號(hào)的旋轉(zhuǎn)式傳感器,這些脈沖能用來(lái)控制角位移,如果將編碼器與齒輪條或螺旋絲杠結(jié)合在一起,也能夠用于測(cè)量直線位移。
然而按照讀出方式編碼器可以分為接觸式和非接觸式兩種;按照工作原理旋轉(zhuǎn)編碼器可分為式增量式和兩類。式編碼器的每一個(gè)位置對(duì)應(yīng)一個(gè)確定的數(shù)字碼,所以它的示值只能與測(cè)量的起始和終止位置有關(guān),而與測(cè)量的中間過(guò)程沒(méi)有關(guān)系。增量式編碼器是將位移轉(zhuǎn)換成周期性的電信號(hào),再把這個(gè)電信號(hào)轉(zhuǎn)變成計(jì)數(shù)脈沖,用脈沖的個(gè)數(shù)來(lái)表示位移的大小。
旋轉(zhuǎn)編碼器是一種用來(lái)測(cè)量轉(zhuǎn)速并配合PWM技術(shù)可以實(shí)現(xiàn)快速調(diào)速的裝置,而測(cè)量轉(zhuǎn)速的對(duì)象是電機(jī)。旋轉(zhuǎn)編碼器是集光機(jī)電技術(shù)于一體的速度位移傳感器。旋轉(zhuǎn)編碼器在進(jìn)行電機(jī)轉(zhuǎn)速的測(cè)量以后,旋轉(zhuǎn)編碼器就把相應(yīng)的數(shù)值通過(guò)數(shù)字表進(jìn)行反饋,我們就可以直接通過(guò)看屏幕上旋轉(zhuǎn)編碼器反饋的數(shù)字,知道電機(jī)的實(shí)時(shí)轉(zhuǎn)速到底是有多少。
旋轉(zhuǎn)編碼器對(duì)于幾乎所有運(yùn)動(dòng)-控制應(yīng)用來(lái)說(shuō)都很關(guān)鍵,由于無(wú)刷直流電動(dòng)機(jī)(BLDC)使用增加,使得旋轉(zhuǎn)編碼器的需求進(jìn)一步擴(kuò)大,而且提供了控制、精度和效率等方面的諸多益處。編碼器的任務(wù)很簡(jiǎn)單,原則上就是:向系統(tǒng)控制器指示電機(jī)軸的位置.控制器可以利用這信息準(zhǔn)確高效地給電機(jī)繞組轉(zhuǎn)向以及確定速度、方向和加速,這些是運(yùn)動(dòng)控制回路維持電機(jī)性能要求所需要的參數(shù)。
旋轉(zhuǎn)編碼器是一種機(jī)電換能器,意味著它將機(jī)械運(yùn)動(dòng)轉(zhuǎn)換為電子脈沖。它由旋鈕組成,當(dāng)旋轉(zhuǎn)時(shí),旋鈕將逐步移動(dòng)并產(chǎn)生一系列脈沖序列,每個(gè)步驟具有預(yù)定義的寬度。有許多類型的編碼器,每個(gè)編碼器都有自己的工作機(jī)制,稍后我們將了解這些類型,但現(xiàn)在讓我們只關(guān)注KY040增量編碼器,因?yàn)槲覀儗⑺糜谖覀兊慕坛獭?
編碼器的內(nèi)部機(jī)械結(jié)構(gòu)如下所示。它基本上由圓盤(灰色)和放置在該圓盤頂部的導(dǎo)電墊(銅色)組成。這些導(dǎo)電焊盤以相同的距離放置,如下所示。輸出引腳固定在該圓盤的頂部,這樣當(dāng)旋鈕旋轉(zhuǎn)時(shí),導(dǎo)電墊與輸出引腳接觸。這里有兩個(gè)輸出引腳,輸出A和輸出B。
輸出引腳A和輸出B產(chǎn)生的輸出波形分別以藍(lán)色和綠色顯示。當(dāng)導(dǎo)電焊盤直接位于引腳下方時(shí),它會(huì)變高,導(dǎo)致導(dǎo)通時(shí)間,當(dāng)導(dǎo)電焊盤移開(kāi)時(shí),引腳變低,導(dǎo)致上面所示波形的關(guān)閉時(shí)間。現(xiàn)在,如果我們計(jì)算脈沖數(shù),我們將能夠確定編碼器移動(dòng)了多少步。
現(xiàn)在可能會(huì)出現(xiàn)這樣的問(wèn)題:當(dāng)一個(gè)脈沖信號(hào)足以計(jì)算旋轉(zhuǎn)旋鈕時(shí)所采取的步數(shù)時(shí),為什么我們需要兩個(gè)脈沖信號(hào)。這是因?yàn)槲覀冃枰_定旋鈕旋轉(zhuǎn)的方向。如果您看一下這兩個(gè)脈沖,您會(huì)注意到它們都是90°異相。因此,當(dāng)順時(shí)針旋轉(zhuǎn)旋鈕時(shí),輸出A將首先變高,當(dāng)旋鈕逆時(shí)針旋轉(zhuǎn)時(shí),輸出B將首先變高。
以KY-040增量式旋轉(zhuǎn)編碼器為例,介紹編碼器的電路控制。
旋轉(zhuǎn)編碼器有5個(gè)引腳,前兩個(gè)引腳是接地和Vcc,它連接到Arduino的地和+ 5V引腳。編碼器的開(kāi)關(guān)連接到數(shù)字引腳D8,并通過(guò)1k電阻拉高。兩個(gè)輸出引腳分別連接到D9和D8。
要顯示通過(guò)旋轉(zhuǎn)Rotary編碼器增加或減少的變量值,我們需要一個(gè)顯示模塊。這里使用的是常用的字符型圖形點(diǎn)陣液晶1602。我們已將連接的顯示屏設(shè)置成4位工作模式,并使用Arduino的+ 5V引腳為其供電。電位計(jì)用于調(diào)整LCD顯示屏的對(duì)比度。完整的電路可以在面包板上進(jìn)行搭建,一旦完成所有的連接后。
采用單片機(jī)內(nèi)部的上拉輸入可能帶來(lái)較大功耗,因?yàn)閱纹瑱C(jī)內(nèi)部電阻較大,arduino實(shí)現(xiàn)的基本原理為已知每圈脈沖數(shù)為2500,則當(dāng)計(jì)數(shù)大道2500時(shí),計(jì)數(shù)一圈,若為stm32則進(jìn)行溢出中斷。通過(guò)A、B相的高低電平關(guān)系,判斷AB相的先后關(guān)系,進(jìn)而判斷轉(zhuǎn)向。
為了區(qū)分正反轉(zhuǎn)及檢測(cè)零點(diǎn),通常包括三個(gè)部分:A相,B相和Z相,A相與B相相差1/4周期(相位差90度),可以用來(lái)區(qū)分正轉(zhuǎn)還是反轉(zhuǎn);Z相為單圈脈沖,碼盤轉(zhuǎn)一圈產(chǎn)生一次,可以用作編碼器的參考零位。這樣我們就可以通過(guò)旋轉(zhuǎn)編碼器控制我們的BLDC電機(jī)了。