Button ArdunioJoy SticklLibrary按钮状态首选项

Button ArdunioJoy SticklLibrary按钮状态首选项,button,arduino,joystick,Button,Arduino,Joystick,您好,我目前正在使用MHeironimus的ArduinoJoy SticklLibrary,我有一个3按钮的游戏板,对此我有问题。我的引脚2上的按钮是常开的,如何在代码中反转此按钮,使状态为常关 我真的没有任何线索,我只是修改了键盘+按钮操纵杆代码以使其正常工作,我基本上只需要能够控制每个按钮的初始状态,因为有时开关/按钮可能会反转 起初,我认为可以通过这一部分来实现: //按钮的最后状态 int lastButtonState[3]={0,0,0}; 如果我只是将这个{0,0,0}更改为类

您好,我目前正在使用MHeironimus的ArduinoJoy SticklLibrary,我有一个3按钮的游戏板,对此我有问题。我的引脚2上的按钮是常开的,如何在代码中反转此按钮,使状态为常关

我真的没有任何线索,我只是修改了键盘+按钮操纵杆代码以使其正常工作,我基本上只需要能够控制每个按钮的初始状态,因为有时开关/按钮可能会反转

起初,我认为可以通过这一部分来实现:

//按钮的最后状态
int lastButtonState[3]={0,0,0};
如果我只是将这个
{0,0,0}
更改为类似的
{0,1,0}
,那么我在引脚3上的按钮将正常打开或处于
。但是没有。基本上,我只需要能够在运行中控制3个按钮状态中的每一个,因为我永远不知道一个开关/按钮会如何反应

见下面的代码:

#包括
操纵杆(操纵杆默认报告ID、操纵杆类型、游戏板、,
3,0,//按钮计数,帽子开关计数
false,false,false,//X和Y,但没有Z轴
false,false,false,//无Rx,Ry或Rz
false,false,//没有方向舵或油门
假,假,假);//无加速器、制动器或转向
无效设置(){
//初始化按钮引脚
引脚模式(2,输入\上拉);
pinMode(3,输入\上拉);
引脚模式(4,输入\上拉);
//初始化操纵杆库
操纵杆。开始();
}
//将物理引脚映射到操纵杆按钮的常数。
const int pinToButtonMap=2;
//按钮的最后状态
int lastButtonState[3]={0,0,0};
void循环(){
//读取引脚值
对于(int-index=0;index<3;index++)
{
int currentButtonState=!digitalRead(索引+PintToButtonMap);
如果(currentButtonState!=lastButtonState[索引])
{
如果(指数<4){
操纵杆设置按钮(索引,当前按钮状态);
lastButtonState[索引]=当前ButtonState;
}否则{
如果(currentButtonState){
操纵杆设置按钮(索引,当前按钮状态);
lastButtonState[索引]=当前ButtonState;
}
}
}
}
延迟(10);
}

定义要翻转的按钮:

bool flipButtons[3]={false,true,false};
然后在读取按钮状态时,使用它将其翻转:

int currentButtonState=!digitalRead(索引+pinToButtonMap)^flipButtons[索引];