Arduino के साथ KY-040 रोटरी एनकोडर का उपयोग कैसे करें

How to Use the KY-040 Rotary Encoder with Arduino

KY-040 रोटरी एनकोडर एक यांत्रिक उपकरण है जिसका उपयोग कोणीय स्थिति या रोटेशन को मापने के लिए किया जाता है। यह आमतौर पर वॉल्यूम नियंत्रण, मेनू नेविगेशन और रोबोटिक्स में स्थिति ट्रैकिंग में उपयोग किया जाता है। यह ट्यूटोरियल आपको Arduino के साथ KY-040 रोटरी एनकोडर को जोड़ने और उपयोग करने के माध्यम से मार्गदर्शन करेगा।


आपको क्या चाहिए

  1. KY-040 रोटरी एनकोडर मॉड्यूल
  2. Arduino बोर्ड (जैसे, UNO, मेगा, नैनो)
  3. ब्रेडबोर्ड और जम्पर तार
  4. Arduino IDE के साथ एक कंप्यूटर स्थापित

चरण 1: KY-040 रोटरी एनकोडर को समझना

KY-040 एनकोडर में एक रोटरी डायल होता है जो घुमाए जाने पर दालों को उत्पन्न करता है। इसमें एक अंतर्निहित पुश बटन भी शामिल है।

KY-040 पिनआउट

नत्थी करना समारोह
Gnd मैदान
+ बिजली की आपूर्ति
चोंच क्लॉक पल्स सिग्नल
डीटी आंकड़ा पल्स संकेत
स्वच्छ पुश बटन सिग्नल

चरण 2: KY-040 को Arduino को वायर करना

यहाँ KY-040 को Arduino UNO से कैसे कनेक्ट किया जाए:

KY-040 पिन अर्डुइनो पिन
Gnd Gnd
+ 5V
चोंच पिन २
डीटी पिन ३
स्वच्छ पिन ४

चरण 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. USB के माध्यम से अपने कंप्यूटर से Arduino कनेक्ट करें।
  2. Arduino ide खोलें और सही का चयन करें तख़्ता और पत्तन नीचे औजार मेनू।
  3. क्लिक करके कोड अपलोड करें अपलोड करना.
  4. सीरियल मॉनिटर खोलें (औजार > सीरियल मॉनिटर) और बॉड दर निर्धारित करें 9600.
  5. एनकोडर को घुमाएं और बटन दबाएं। सीरियल मॉनिटर में काउंटर और बटन प्रेस संदेशों का निरीक्षण करें।

KY-040 रोटरी एनकोडर के अनुप्रयोग

  1. मात्रा या चमक नियंत्रण
  2. मेनू नेविगेशन
  3. मोटर स्थिति ट्रैकिंग
  4. रोबोटिक्स और स्वचालन प्रणालियाँ

समस्या निवारण

  • कोई रोटेशन का पता लगाना: CLK और DT वायरिंग की जाँच करें और सुनिश्चित करें कि पिन कोड से मेल खाते हैं।
  • अस्थिर रीडिंग: एनकोडर संकेतों को स्थिर करने के लिए एक छोटी सी बहस में देरी जोड़ें।
  • बटन का पता नहीं चला: सत्यापित करें कि SW पिन ठीक से जुड़ा हुआ है और उपयोग करता है INPUT_PULLUP तरीका।

निष्कर्ष

आपने Arduino के साथ KY-040 रोटरी एनकोडर को सफलतापूर्वक इंटरफ्रेंस किया है। यह बहुमुखी मॉड्यूल आपको अपनी परियोजनाओं में रोटेशन ट्रैकिंग और बटन कार्यक्षमता जोड़ने में सक्षम बनाता है। विभिन्न अनुप्रयोगों में इसके साथ प्रयोग करें, जैसे कि कस्टम नियंत्रण का निर्माण या अपने सिस्टम में मेनू को नेविगेट करना!

एक टिप्पणी छोड़ें

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.