gpt4 book ai didi

c - Arduino 蓝牙 HID NES Controller 用 C 语言编码按键

转载 作者:行者123 更新时间:2023-11-30 19:49:04 26 4
gpt4 key购买 nike

我将一个连接到 Arduino mini pro (3.3v) 的 NES Controller 和一个蓝牙 HID 模块(类似于 rn-42 BlueSmirf)组合在一起。我可以将其连接到我的 Macbook 并发送击键信息。

但是,它的作用就像是重复按下该键,而不是按住某个键。我需要它的行为与键盘完全相同,但现在它每次经过循环(50 毫秒)时都会按下一个键。感谢您提前的帮助!

Arduino 代码:

const int buttonA = 2;//Button: A
const int buttonB = 3;//Button: B
const int buttonC = 4;//Button: Start
const int buttonD = 5;//Button: Select
const int buttonE = 6;//Button: Up
const int buttonF = 7;//Button: Down
const int buttonG = 8;//Button: Left
const int buttonH = 9;//Button: Right

...

void loop()
{
if (digitalRead(buttonA) == LOW) //pin is HIGH until a button is pressed
{Serial.write('A');}
if (digitalRead(buttonB) == LOW)
{Serial.write('B');}
if (digitalRead(buttonC) == LOW)
{Serial.write('1');}
if (digitalRead(buttonD) == LOW)
{Serial.write('2');}
if (digitalRead(buttonE) == LOW)
{Serial.write('U');}
if (digitalRead(buttonF) == LOW)
{Serial.write('D');}
if (digitalRead(buttonG) == LOW)
{Serial.write('L');}
if (digitalRead(buttonH) == LOW)
{Serial.write('R');}
delay(50);
}

最佳答案

让您开始:您的程序正在完全按照您的指示进行操作。发生的事情是这样的:每次循环时,程序都会询问:按钮被按下了吗?如果是,则它发送一个击键。

您需要做的是存储每个按钮的状态(即按钮是否被按下),也许在一个数组中。然后读取每个按钮,检查该按钮的状态是否与您存储的状态发生变化,只有在发生变化时,才向蓝牙发送内容。在这种情况下,您需要将按钮的状态更新为新状态。

如果按钮状态未更改,则不发送任何内容(针对该按钮)。这将具有您想要的行为。

关于c - Arduino 蓝牙 HID NES Controller 用 C 语言编码按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15776240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com