كيفية استخدام تشفير Rotary KY-040 مع Arduino

How to Use the KY-040 Rotary Encoder with Arduino

إن تشفير Rotary KY-040 هو جهاز ميكانيكي يستخدم لقياس الموضع الزاوي أو الدوران. يتم استخدامه بشكل شائع في عناصر التحكم في مستوى الصوت ، والتنقل في القائمة ، وتتبع الموضع في الروبوتات. سيوجهك هذا البرنامج التعليمي من خلال الاتصال واستخدام تشفير Rotary KY-040 مع Arduino.


ماذا ستحتاج

  1. KY-040 وحدة التشفير الدوار
  2. لوحة Arduino (على سبيل المثال ، UNO ، Mega ، Nano)
  3. الأسلاك الأسلاك والبلوز
  4. جهاز كمبيوتر مع Arduino IDE مثبت

الخطوة 1: فهم المشفر الدوار KY-040

يتكون تشفير KY-040 من قرص دوار يولد نبضات عند الدوران. ويشمل أيضًا زر الضغط المدمج.

KY-040 Pinout

دبوس وظيفة
GND أرضي
+ مزود الطاقة (5 فولت)
CLK إشارة النبض على مدار الساعة
dt إشارة نبض البيانات
جنوب غرب اضغط على إشارة زر

الخطوة 2: توصيل KY-040 إلى Arduino

إليك كيفية توصيل KY-040 بأردوينو أونو:

KY-040 دبوس دبوس أردوينو
GND GND
+ 5V
CLK دبوس 2
dt دبوس 3
جنوب غرب دبوس 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.