我的目标是为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。我试图将计数器值打印到串行监视器上以查看其作用,但是监视器在随机时刻改变并且无法识别旋转编码器。我可以澄清这一点,但是我想知道我可以解决什么。
事实证明,这只是一个干扰问题。使用上拉电阻器解决了该问题。