旋轉編碼器 Rotary Encoder

用旋轉編碼器的旋轉方向和旋轉量,來操控一個十段 LED排燈

簡介

旋轉編碼器 Rotary Encoder,是將旋轉方向或旋轉量,轉換成類比或數位訊號的裝置,容許 360 度旋轉,常用來控制喇叭音量、冷氣冷度、以及馬達的轉動位置和速度。

比起可變電阻 (Potentiometer) ,旋轉編碼器有更廣泛的用途

旋轉編碼器的操作原理,是在 Output A (CLK) 和 Output B (DT) 兩個端子輸出兩個脈波。當編碼器被順時針旋轉時,脈波 A 領先脈波 B 半個脈波;反之,當逆時針旋轉時,脈波 A 則落後脈波 B 半個脈波。如此,旋轉編碼器的後方元件,如 Arduino 控制器,便能判斷旋轉的方向和旋轉量。本專題用旋轉編碼器的旋轉方向和旋轉量,來操控一個十段 LED排燈。

先看看YouTube 成果影片:

材料和接線圖

Arduino Uno x1

用旋轉編碼器 Rotary Encoder (20格一圈) x1

十段 LED 排燈 x1

麵包版 x1

電阻 220 -330 歐姆 x10

電線


LED 排燈一端接電阻,電阻另一端連接 GND。( LED 有方向性,請勿接錯。)

LED 排燈另一端依序連接 Arduino pins 5-13 及 A0。

旋轉編碼器 連接 Arduino

CLK pin 2

DT pin 3

SW pin 4

+ 5V

GND GND

上傳主程式

複製下列程式於 Arduino IDE中,點擊 ”工具”,確認開發板是 Arduino/Genuino Uno, 序列埠 Port COM已接上,再點擊 ”上傳”。大功告成。

創客點子

  1. 連接旋轉編碼器和一個 LCD 液晶顯示器,用顯示器來顯示旋轉編碼器的轉動量和轉動方向。

  2. 用旋轉編碼器來操控一個伺服馬達