إن تشفير Rotary KY-040 هو جهاز ميكانيكي يستخدم لقياس الموضع الزاوي أو الدوران. يتم استخدامه بشكل شائع في عناصر التحكم في مستوى الصوت ، والتنقل في القائمة ، وتتبع الموضع في الروبوتات. سيوجهك هذا البرنامج التعليمي من خلال الاتصال واستخدام تشفير Rotary KY-040 مع Arduino.
ماذا ستحتاج
- KY-040 وحدة التشفير الدوار
- لوحة Arduino (على سبيل المثال ، UNO ، Mega ، Nano)
- الأسلاك الأسلاك والبلوز
- جهاز كمبيوتر مع 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: اختبار الإعداد
- قم بتوصيل Arduino بجهاز الكمبيوتر الخاص بك عبر USB.
- افتح Arduino IDE وحدد الصحيح سبورة و ميناء تحت أدوات قائمة طعام.
- تحميل الرمز بالنقر فوق رفع.
- افتح الشاشة التسلسلية (أدوات > المراقبة التسلسلية) وتعيين معدل باود
9600
. - قم بتدوير التشفير واضغط على الزر. راقب العداد والزر اضغط على الرسائل في الشاشة التسلسلية.
تطبيقات تشفير الروتاري KY-040
- التحكم في الحجم أو السطوع
- التنقل في القائمة
- تتبع موقف المحرك
- أنظمة الروبوتات والأتمتة
استكشاف الأخطاء وإصلاحها
- لا يوجد اكتشاف دوران: تحقق من الأسلاك CLK و DT وتأكد من مطابقة الدبابيس الرمز.
- قراءات غير مستقرة: أضف تأخير صريح صغير لتحقيق الاستقرار في إشارات التشفير.
-
الزر لم يتم اكتشافه: تحقق من توصيل دبوس SW بشكل صحيح ويستخدمه
INPUT_PULLUP
وضع.
خاتمة
لقد نجحت في ربط تشفير KY-040 الدوار مع Arduino. تمكنك هذه الوحدة متعددة الاستخدامات من إضافة تتبع الدوران ووظائف الزر لمشاريعك. جربها في تطبيقات مختلفة ، مثل بناء عناصر التحكم المخصصة أو التنقل في القوائم في أنظمتك!