Hur man använder KY-040 Rotary Encoder med Arduino

How to Use the KY-040 Rotary Encoder with Arduino

KY-040-rotationskodaren är en mekanisk anordning som används för att mäta vinkelläge eller rotation. Det används vanligtvis i volymkontroller, menynavigering och positionsspårning i robotik. Denna handledning kommer att vägleda dig genom att ansluta och använda KY-040 Rotary Encoder med Arduino.


Vad du behöver

  1. KY-040 Rotary Encoder Module
  2. Arduino Board (t.ex. Uno, Mega, Nano)
  3. Breadboard och jumpertrådar
  4. En dator med Arduino Ide installerad

Steg 1: Förstå KY-040 Rotary Encoder

KY-040-kodaren består av en roterande urtavla som genererar pulser när de roteras. Den innehåller också en inbyggd tryckknapp.

KY-040 PINOUT

Stift Fungera
Gard Jord
+ Strömförsörjning (5V)
Klk Klockpulssignal
Dt Datasignal
Sw Tryckknappsignal

Steg 2: Kopplar KY-040 till Arduino

Så här ansluter du KY-040 till en Arduino Uno:

KY-040-stift Arduinosnål
Gard Gard
+ 5V
Klk Stift 2
Dt Stift 3
Sw Stift 4

Steg 3: Ladda upp koden

Följande exempelkod läser rotationskodarens rotations- och upptäckt -knapptryckningar:

#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
  }
}

Steg 4: Testa installationen

  1. Anslut Arduino till din dator via USB.
  2. Öppna Arduino IDE och välj rätt Styrelse och Hamn under Verktyg meny.
  3. Ladda upp koden genom att klicka Ladda upp.
  4. Öppna seriell monitor (Verktyg > Serieövervakare) och ställ in baudhastigheten till 9600.
  5. Vrid kodaren och tryck på knappen. Observera räknaren och knapptrycksmeddelandena i seriell monitor.

Applikationer av KY-040 Rotary Encoder

  1. Volym eller ljusstyrka kontroll
  2. Menynavigering
  3. Spårning av motorisk position
  4. Robotik- och automatiseringssystem

Felsökning

  • Ingen rotationsdetektering: Kontrollera CLK- och DT -ledningarna och se till att stiften matchar koden.
  • Instabila avläsningar: Lägg till en liten förseningen för debous för att stabilisera kodarsignalerna.
  • Knappen inte upptäckt: Verifiera att SW -stiftet är korrekt anslutet och använder INPUT_PULLUP läge.

Slutsats

Du har framgångsrikt blandat KY-040 Rotary Encoder med Arduino. Denna mångsidiga modul gör det möjligt för dig att lägga till rotationsspårning och knappfunktionalitet till dina projekt. Experimentera med det i olika applikationer, som att bygga anpassade kontroller eller navigera i menyer i dina system!

Lämna en kommentar

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.