我如何使用旋转编码器控制HID设备?

问题描述 投票:2回答:1

我的目标是为Windows 10 PC创建一个小型开关面板。我正在使用Arduino Micro运行我的程序。我想使用数字旋转编码器来控制操纵杆输入。我想通过在顺时针旋转编码器时增大音量来控制音量,而在逆时针旋转时减小音量来控制音量

#include <Joystick.h>

#define outputA 2
#define outputB 3


int counter = 0;
int aState;
int aLastState;

void setup() {
  Joystick.begin();
  pinMode(2, INPUT);
  pinMode(3, INPUT);
}

void loop() {
  aState = digitalRead(outputA);
  if (aState != aLastState) {
    if (digitalRead(outputB) != aState) {      // Clockwise
      Joystick.pressButton(1);
      delay(10);
      Joystick.releaseButton(1);
      counter ++;
    } else {                   // Counterclockwise
      Joystick.pressButton(2);
      delay(10);
      Joystick.releaseButton(2);
      counter --;
    }
    Serial.print("Counter:  ");
    Serial.println(counter);
  }
  aLastState = aState;
}

每次沿顺时针方向推销时,均应按下按钮(按钮1),而当逆时针方向推时,则应按按钮2。我试图将计数器值打印到串行监视器上以查看其作用,但是监视器在随机时刻改变并且无法识别旋转编码器。我可以澄清这一点,但是我想知道我可以解决什么。

c++ arduino
1个回答
1
投票

事实证明,这只是一个干扰问题。使用上拉电阻器解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.