Ротационният енкодер е инструмент, с който може да се отчита въртене по посока на часовниковата стрелка и обратно. Механичното въртене се преобразува в изходен сигнал, който определя посоката (DT пин) и инпулсите (CLK пин).  Чрез притискане на оста, сработва вграденият бутон, като изходния сигнал може да бъде отчетен чрез SW пин.


Спецификация:

  • Модел: KY-040;
  • Работно напрежение: 3.3 - 5v;
  • Позиции в един оборот: 30 (15 импулса HIGH);
  • Бутон, сработващ при натиск по оста;
  • Размери на платката: 21 x 18.5 мм;
  • Тегло: 8 г.


Пинове:

  • GND - маса/земя.
  • VCC - захранване 3.3 - 5 v
  • SW - при натискане на бутона, изходния сихнал на този пин е 0 (ниско ниво).
  • DT - Този изход се използва за определяне на посоката на въртене.
  • CLK - При всяко щракване в една от дветеа посока, този пин преминава от ВИСОКО към НИСКО и обратно.


Допълнителна информация и урок за използване на сензора с Ардуино (на английски език):

https://peppe8o.com/ky-040-and-arduino-rotatory-encoder-wiring-and-code/


Примерна програма:

#define CLK 4
#define DT 3
#define SW 2

int counter = 0;
int currentStateCLK;
int lastStateCLK;
String currentDir = "";
unsigned long lastButtonPress = 0;

void setup() {
  Serial.begin(9600);  // Setup Serial Monitor
  
  pinMode(CLK, INPUT);   // Set encoder pins as inputs
  pinMode(DT, INPUT);
  pinMode(SW, INPUT_PULLUP);
  lastStateCLK = digitalRead(CLK);  // Read the initial state of CLK
}

void loop() {
  currentStateCLK = digitalRead(CLK);  // Read the current state of CLK
  if (currentStateCLK != lastStateCLK  && currentStateCLK == 1) {
    if (digitalRead(DT) != currentStateCLK) {
      counter --;
      currentDir = "CCW";
    } else {
      counter ++;
      currentDir = "CW";
    }
    Serial.print("Direction: ");
    Serial.print(currentDir);
    Serial.print(" | Counter: ");
    Serial.println(counter);
  }
  lastStateCLK = currentStateCLK;
  
  int btnState = digitalRead(SW);
  if (btnState == LOW) {
    if (millis() - lastButtonPress > 50) {
      Serial.println("Button pressed!");
    }
    lastButtonPress = millis();
  }
  delay(1);
}


KY-040 ротационен енкодер 360°

  • Производител: China
  • Код на продукта: 1341
  • Наличност: 29
  • 5.80 лв.

    с вкл. ДДС


  • 5 или повече 5.50 лв.