繁体   English   中英

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

[英]How do I use rotary encoders to control an HID device?

我的目标是为我的 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。 我试图将计数器值打印到串行监视器以查看它在做什么,但监视器会随机更改并且无法识别旋转编码器。 我可以澄清这一点,但我想知道我能解决什么问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM