旋轉編碼器
旋轉編碼器（rotary encoder）也稱為軸編碼器，是將旋轉位置或旋轉量轉換成模拟或数字信号的機電設備。一般裝設在旋轉物體中垂直旋轉軸的一面。旋轉編碼器用在許多需要精確旋轉位置及速度的場合，如工業控制、机器人技术、專用鏡頭、電腦輸入裝置（如鼠标及轨迹球）等。
旋轉編碼器可分為絕對型（absolute）編碼器及增量型（incremental）編碼器兩種。增量型編碼器也稱作相對型編碼器（relative encoder），利用檢測脈衝的方式來計算轉速及位置，可輸出有關旋轉軸運動的資訊，一般會由其他設備或電路進一步轉換為速度、距離、每分鐘轉速或位置的資訊。絕對型編碼器會輸出旋轉軸的位置，可視為一種角度傳感器。
絕對型編碼器將轉軸的不同位置加以編號，再依目前轉軸位置輸出對應的編號，依構造主要可分為兩種：光學式及機械式。
絕對型編碼器的特點是隨時可以知道轉軸的位置，有時也會將解角器視為是絕對型編碼器。
機械式絕對型編碼器中有一個金屬圓盤，上面有許多同心圓環狀的開口，金屬圓盤固定在一個和主軸同步旋轉的絕緣圓盤上。編碼器的定子上有一組滑動接觸器，各接觸器放置在不同半徑的位置，對應金屬圓盤上對應半徑的開口。而金屬圓盤會連接到一電流源，當軸和圓盤一起旋轉時，依接觸器對應位置的不同，有些接觸器會接觸到金屬圓盤，有些不會，每個接觸器會連接到一個感測器，而金屬圓盤的開口有經過設計，可以將圓分為若干等分，每一等分都對應一個不重覆的二進制碼，二進制碼是由每個接觸器是否有電流而組成。
機械式絕對型編碼器一般會用電刷來當接觸器，因為電刷容易磨損．機械式絕對型編碼器並不常見。在一些低速的應用中比較會用到機械式絕對型編碼器。
光學式絕對型編碼器中也有一個會和主軸同步旋轉的圓盤，圓盤由玻璃或塑膠製成，其中有分為許多同心圓狀的透明及不透明的區域。在圓盤的兩側分別有光源及光感測器陣列，其讀到的資料可以表示圓盤的位置。一般會將讀到的資料傳送到微處理器，轉換為軸的位置。
以下以一個三位元絕對型編碼器的例子說明其二進位的編碼：
若編碼器中有"n"個接點，就可以輸出2個不同的編碼來表示轉軸的位置。在此例中"n"=3，因此可以表示2或8個不同的位置。當轉軸旋轉時圓盤也隨之旋轉，在不同的位置會讀到不同的編碼。不過若各個接點的位置有些誤差，當接點對應的位置由一個區塊移到另一個區塊，就可能無法正確讀到其位置的編碼。
假設轉軸由179.9°轉到180.1°（由區塊4移到區塊5），依以上的表，接點讀到的編碼會由off-ON-ON變成ON-off-off，但在實際的編碼器中，由於接點位置的偏差，三個接點的訊號可能會在不同時間變化，假如接點1的訊號先變化，然後是接點3及接點2的訊號才依序變化，所讀到的編碼依序為
依以上的表來看，其區塊對應的編號依序為4、8、7及5。若以上述的編碼來看，轉軸似乎由區塊4忽然移動到區塊8，後退到區塊7，最後才回到區塊5。在一些應用場合下，上述的情形就會造成問題。假設編碼器是用在機械手臂中，在旋轉過程中控制器可能會認為手臂多旋轉了180度，因以會設法反轉180度加以修正，這可能就會造成機械手臂的損壞。
為避免上述的問題，有些絕對型編碼器會將位置以格雷碼來輸出。格雷碼也是一種二進位的編碼方式，但其相鄰數字只會有一個二進位數不同，以下以一個三位元格雷碼絕對型編碼器的例子說明其二進位的編碼：
同樣假設轉軸由179.9°轉到180.1°（由區塊4移到區塊5），只有一個接點的訊號會出現變化，在其他相鄰區塊中移動也是一様，因此不會有因多個接點訊號未同步變化而造成編碼不正確的情形。
若調整編碼器中的接點至另外一個角度，但和軸心的距離保持不變，則其產生的訊號在調整相同角度會和原來的訊號相同。在上圖中，最內側的二個環訊號除了有90度的相位差外，其餘完全相同，因此最內側的二個環可以縮減成一個，二個接點對應同一個環的訊號，但其角度差為90度，如此對應同一個環的二個接點即形成一組正交解码器。
若編碼器各組接點的訊號可以用一組訊號配合不同相位差來合成，即可用單軌的訊號配合幾個距軸心等距離，但不同角度的接點來產生，稱為單軌格雷碼。有一陣子數學家認為除了二個接點的單軌格雷碼外，不存在其他多接點的單軌格雷碼。不過1994年 N. B. Spedding證實了多接點的單軌格雷碼的存在，並申請了一個單軌格雷碼的專利。
商用的絕對型編碼器有許多不同輸出資料的格式，例如並列式二進位碼、同步串列介面（SSI）、BiSS、ISI、Profibus、DeviceNet、CANopen、Endat及Hiperface等。
上述的絕對型編碼器在一圈內可以偵測其角度位置，但無法偵測旋轉圈數，這類的絕對型編碼器稱為單圈型絕對型編碼器。
多圈型絕對型編碼器則是將旋轉圈數額外用其他信號表示，因此除了角度位置外，也可以記錄旋轉圈數，適用於較長距離的直線應用。
增量型編碼器和絕對型編碼器不同，當轉軸旋轉時，增量型編碼器輸出會隨之變化，根據輸出變化可以檢測轉軸的旋轉量。絕對型編碼器有針對轉軸旋轉的位置給予編號，轉軸不動時根據其輸出的信號可以求得其對應的位置，增量型編碼器無此功能，無法在轉軸不動時得到轉軸旋轉位置的資訊。
增量型編碼器可用來感測轉軸旋轉量的資訊，再由程式產生旋轉方向、位置及角度等資訊，增量型編碼器可以是線性的，也可以是旋轉型。增量型編碼器因為其低成本，以及其信號容易轉換為運動相關的資訊（例如速度）等特性，是最廣為使用的編碼器。
增量型編碼器有機械式的及光學式的，機械式的編碼器需要對信號處理抖动，一般用在消費性產品上的旋鈕。例如大部分家用及車用的收音機就是用增量型編碼器作為音量控制的旋鈕，一般機械式編碼器只適用在轉速不高的應用場合。光學式的編碼器則用在高速或是需要高精準度的場合。
增量型編碼器有二個輸出，分別稱為A和B，二個輸出是正交輸出，相位差為90度。增量型編碼器的单圈脉冲数（PPR）為其旋轉一圈時會輸出的方波數，如PPR為600表示旋轉一圈時A和B都會輸出600個方波，但先後順序不同。光學式增量型編碼器可以有較高的單圈脈衝數，例如 2500 到 10000。
以下是順時針及逆時針旋轉時，編碼器輸出的變化：
二個訊號有90度的相位差，在不同旋轉方向時，二個訊號的相序也有所不同，可以利用程式將二個訊號進行解碼．根據其相序不同，在有方波時使一計數器上數或是下數，此計數器的值即可對應轉軸的旋轉量。
例如上一次的數值是00，目前的數值是01，表示轉軸已順時針旋轉了四分之一個單位（若单圈脉冲数為600，此處的單位即為六百分之一圈）。根據單位時間的旋轉量可以計算轉速，若是轉速很慢時可以直接根據方波的寬度計算轉速。不過上述的計算前提是程式可以確認每一次數值的變化，並依變化決定旋轉方向等資訊。若轉軸的旋轉速度太快，程式可能會跳過中間的狀態變化，出現無法識別轉軸的旋轉方向或是旋轉方向誤判的情形。
有些旋轉編碼器除了A相及B相外還有一個輸出，一般稱為Z相，每旋轉一圈Z相訊號會有一個方波輸出，可以用來判斷轉軸的絕對位置，例如用在位置控制的系統中。
若旋轉編碼器只有單獨一相的輸出，仍然可以判斷轉軸的轉速，只是不能判斷旋轉的方向。可以用在量測轉速的場合，有時也會以此量測運動的距離。
弦波編碼器是增量型編碼器的一種變體．增量型編碼器輸出的是二個正交的方波，而弦波編碼器輸出正弦波及餘弦波。利用反正切函數的演算，可以得到高解析度的結果。
工業上許多場合會用到編碼器。像是需要知道精確位置的位置控制系統，會用旋轉編碼器作為位置的回授。感應馬達是工業上常用的馬達，但由於其運轉時會有轉差率，實際的轉速會隨電流而變化。若需要控制馬達的轉速，也會用增量型編碼器作為速度的回授。
永磁同步無刷馬達常用在工具機、機械人或是其他設備中，常會配合編碼器量測馬達轉動的位置。若是使用感應馬達的伺服機構，使用增量型編碼器即可。但是若使用永磁同步無刷馬達，需配合絕對型編碼器，其原因在永磁同步馬達中，定子電流需和轉子的磁鐵維持特定的角度，永磁同步馬達才會有理想的轉矩輸出，因此需要絕對型編碼器知道轉子的位置。若定子電流和轉子磁鐵的相關角度不對，馬達的轉矩性能不佳，有可能不轉或甚至逆向旋轉，因而造成危險，因此絕對型編碼器在這種應用時是相當重要。
也有一些永磁同步馬達使用特殊的增量式編碼器，除了A、B及Z相信號外，還有U、V及W相偵測磁極的位置。U、V及W相可能是單獨的三組線，或是將U、V及W相和A、B及Z相共用的省配線編碼器，送電後一段時間內先送出U、V及W相信號，之後仍維持正常的A、B及Z相信號輸出。
編碼器可以用以下幾種不同的技術實現：
可提供類似機能的設備包括、解角器、（RVDT）及旋轉電位器。
類似旋轉編碼器，但是是量測在一直線上的位置及位移，而不是量測旋轉量。線性編碼器一般是增量型，常在工具機中使用。