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