KY-040-kiertokooderin käyttäminen Arduinon kanssa

How to Use the KY-040 Rotary Encoder with Arduino

KY-040-kiertokooderi on mekaaninen laite, jota käytetään kulman asennon tai pyörimisen mittaamiseen. Sitä käytetään yleisesti äänenvoimakkuuden säätimissä, valikkonavigointissa ja paikan seurannassa robotiikassa. Tämä opetusohjelma opastaa sinua kytkemällä ja käyttämällä KY-040-kiertokooderia Arduinon kanssa.


Mitä tarvitset

  1. KY-040 pyörivä kooderimoduuli
  2. Arduino Board (esim. UNO, Mega, Nano)
  3. Leipälevy- ja hyppyjohdot
  4. Tietokone, jossa Arduino IDE on asennettu

Vaihe 1: KY-040-kiertokooderin ymmärtäminen

KY-040-kooderi koostuu pyörivästä valitsimesta, joka tuottaa pulsseja pyöritettäessä. Se sisältää myös sisäänrakennetun painikkeen.

KY-040 Pinout

Nasta Funktio
Hölynpöly Pohja
+ Virtalähde (5 V)
Plk Kellopulssisignaali
DT Datapulssisignaali
Sw Paina nappisignaali

Vaihe 2: KY-040: n johdotus Arduinolle

Näin yhdistetään KY-040 Arduino UNO: lle:

KY-040-nasta Arduino -nasta
Hölynpöly Hölynpöly
+ 5V
Plk Nasta 2
DT Nasta 3
Sw Nasta 4

Vaihe 3: Lataa koodi

Seuraava esimerkki koodi lukee kiertokooderin kierto ja havaitsee painikkeen painikkeet:

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

Vaihe 4: Testaa asennus

  1. Kytke Arduino tietokoneeseen USB: n kautta.
  2. Avaa Arduino IDE ja valitse oikea Hallitus ja Satama alla Työkalut valikko.
  3. Lataa koodi napsauttamalla Ladata.
  4. Avaa sarjamonitori (Työkalut > Sarjamonitori) ja aseta baud -arvo 9600.
  5. Kierrä kooderi ja paina painiketta. Tarkkaile laskuri ja painike Paina Sarjavalvonnan viestejä.

KY-040-kiertokooderin sovellukset

  1. Äänenvoimakkuuden tai kirkkauden hallinta
  2. Valikon navigointi
  3. Moottorin asennon seuranta
  4. Robotti- ja automaatiojärjestelmät

Vianetsintä

  • Ei kiertoilmaisua: Tarkista CLK- ja DT -johdotus ja varmista, että nastat vastaavat koodia.
  • Epävakaat lukemat: Lisää pieni poistoviive kooderisignaalien vakauttamiseksi.
  • Painiketta ei havaittu: Varmista, että SW -nasta on kytketty oikein ja käyttää INPUT_PULLUP tila.

Johtopäätös

Olet onnistuneesti liitetty KY-040-kiertokooderiin Arduinon kanssa. Tämän monipuolisen moduulin avulla voit lisätä kiertoseurannan ja painiketoiminnot projekteihisi. Kokeile sitä eri sovelluksissa, kuten räätälöityjen hallintalaitteiden rakentaminen tai valikoiden navigointi järjestelmissäsi!

Jätä kommentti

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.