Энкодер подключение к Arduino

Модуль датчика вращения (валкодер) rotary encoder module KY-040

Характеристики энкодера KY-040

Наибольшее напряжение 5В;
Наибольший ток 10 мА;
Формат выходного сигнала: квадратурный код 2 бит;
Температура эксплуатации от -30°C до 70°C;
Число оборотов вращения энкодера при эксплуатации не менее 30 тысяч раз, нажатий на кнопку не менее 20 тысяч раз;
Сопротивление контактов 100 мОм;
Один оборот равен 24 импульсам.

Распиновка энкодера KY-040

датчика вращения KY-040
CLK импульсы отсчета;
DT импульсы направления;
SW кнопка нажатия;
+ питание 5 V;
GND земля.

Распиновка энкодера WAVGAT Rotary Encoder Module

Rotary encoder
+5 питание;

KEY кнопка нажатия;
S1 установка значений против часовой стрелки;
S2 установка значений по часовой стрелки;
GND земля.

Принципиальная схема модуля энкодера KY-040

энкодера KY-040 схема

Схема подключения модуля энкодера KY-040 к Arduino UNO

энкодер подключение к arduino

Скетч для энкодера KY-040 подключенного к Arduino UNO

const int pin_digital_outputCLK=9;
const int pin_digital_outputDT=8;
const int pin_digital_outputSW=7;
int counter = 0; 

int currentCLK;
int lastCLK;

String currentEnc ="";

unsigned long ButtonPress = 0;
 
 void setup() { 
   pinMode (pin_digital_outputCLK,INPUT);
   pinMode (pin_digital_outputDT,INPUT);
   pinMode (pin_digital_outputSW,INPUT);
   Serial.begin (9600);

   lastCLK = digitalRead(pin_digital_outputCLK);
 } 
 void loop() { 
   
    currentCLK = digitalRead(pin_digital_outputCLK);

    if (currentCLK != lastCLK  && currentCLK == 1){

    if (digitalRead(pin_digital_outputDT) != currentCLK) {
      counter --;
      currentEnc ="DE ";
    } else {
      counter ++;
      currentEnc ="IN ";
    }
    Serial.print(currentEnc);
    Serial.println(counter);
    }

    lastCLK = currentCLK;
    
    int ButtonState = digitalRead(pin_digital_outputSW);
    if (ButtonState == HIGH) {
      if (millis() - ButtonPress > 50) {
        Serial.println("Нажатие на кнопку");
      }
      ButtonPress = millis();
  }
   
  delay(1);

 }

Результат работы скетча:

Энкодер результат работы программы

1862

Leave a Reply

Ваш адрес email не будет опубликован.