วิธีใช้เข้ารหัสโรตารี่ KY-040 กับ Arduino

How to Use the KY-040 Rotary Encoder with Arduino

ตัวเข้ารหัสโรตารี่ KY-040 เป็นอุปกรณ์เชิงกลที่ใช้ในการวัดตำแหน่งเชิงมุมหรือการหมุน มันมักจะใช้ในการควบคุมระดับเสียงการนำทางเมนูและการติดตามตำแหน่งในหุ่นยนต์ บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อและใช้ตัวเข้ารหัสโรตารี่ KY-040 กับ Arduino


สิ่งที่คุณต้องการ

  1. KY-040 โมดูล rotary encoder
  2. คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
  3. เครื่องหั่นขนมปังและสายจัมเปอร์
  4. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: ทำความเข้าใจกับตัวเข้ารหัสโรตารี KY-040

ตัวเข้ารหัส KY-040 ประกอบด้วยหน้าปัดหมุนที่สร้างพัลส์เมื่อหมุน นอกจากนี้ยังมีปุ่มกดในตัว

ky-040 pinout

เข็มหมุด การทำงาน
gnd พื้น
+ แหล่งจ่ายไฟ (5V)
ลูกนก สัญญาณชีพจรนาฬิกา
DT สัญญาณชีพจรข้อมูล
SW สัญญาณกดปุ่ม

ขั้นตอนที่ 2: เดินสาย KY-040 ไปยัง Arduino

นี่คือวิธีเชื่อมต่อ KY-040 กับ Arduino Uno:

ky-040 pin พิน Arduino
gnd gnd
+ 5V
ลูกนก พิน 2
DT พิน 3
SW พิน 4

ขั้นตอนที่ 3: อัปโหลดรหัส

รหัสตัวอย่างต่อไปนี้จะอ่านการหมุนของตัวเข้ารหัสแบบโรตารี่และตรวจจับการกดปุ่ม:

#define CLK 2  // Clock pin
#define DT 3   // Data pin
#define SW 4   // Switch pin

int counter = 0;     // Counter to track rotation
int currentStateCLK;
int lastStateCLK;

void setup() {
  pinMode(CLK, INPUT);
  pinMode(DT, INPUT);
  pinMode(SW, INPUT_PULLUP); // Internal pull-up for the button

  Serial.begin(9600);

  // Read the initial state of the CLK pin
  lastStateCLK = digitalRead(CLK);

  Serial.println("KY-040 Rotary Encoder Test");
}

void loop() {
  // Read the current state of the CLK pin
  currentStateCLK = digitalRead(CLK);

  // If the state has changed, the encoder has rotated
  if (currentStateCLK != lastStateCLK) {
    // Check the DT pin to determine the rotation direction
    if (digitalRead(DT) != currentStateCLK) {
      counter++;
    } else {
      counter--;
    }

    Serial.print("Counter: ");
    Serial.println(counter);
  }

  // Save the last state of CLK
  lastStateCLK = currentStateCLK;

  // Check if the button is pressed
  if (digitalRead(SW) == LOW) {
    Serial.println("Button pressed!");
    delay(200); // Debounce delay
  }
}

ขั้นตอนที่ 4: ทดสอบการตั้งค่า

  1. เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
  2. เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
  3. อัปโหลดรหัสโดยคลิก อัพโหลด.
  4. เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น 9600.
  5. หมุนตัวเข้ารหัสแล้วกดปุ่ม สังเกตข้อความกดปุ่มและปุ่มในการตรวจสอบแบบอนุกรม

แอปพลิเคชันของโปรแกรมเข้ารหัสโรตารี่ KY-040

  1. การควบคุมระดับเสียงหรือความสว่าง
  2. การนำทางเมนู
  3. การติดตามตำแหน่งมอเตอร์
  4. หุ่นยนต์และระบบอัตโนมัติ

การแก้ไขปัญหา

  • ไม่มีการตรวจจับการหมุน: ตรวจสอบการเดินสาย CLK และ DT และตรวจสอบให้แน่ใจว่าพินตรงกับรหัส
  • การอ่านที่ไม่แน่นอน: เพิ่มความล่าช้าเล็ก ๆ น้อย ๆ เพื่อทำให้สัญญาณเข้ารหัสเสถียร
  • ไม่พบปุ่ม: ตรวจสอบว่าพิน SW เชื่อมต่ออย่างเหมาะสมและใช้งาน INPUT_PULLUP โหมด.

บทสรุป

คุณสามารถเชื่อมต่อเครื่องเข้ารหัสแบบโรตารี่ KY-040 ได้สำเร็จกับ Arduino โมดูลอเนกประสงค์นี้ช่วยให้คุณสามารถเพิ่มฟังก์ชั่นการติดตามการหมุนและปุ่มในโครงการของคุณ ทดลองใช้ในแอปพลิเคชันที่แตกต่างกันเช่นการสร้างการควบคุมที่กำหนดเองหรือนำทางเมนูในระบบของคุณ!

แสดงความคิดเห็น

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.