[英]Arduino HID keyboard keycodes not working properly
我正在做一個項目,我可以使用紅外遙控器連接到我的電腦並控制它,因為我有一個連接到它的投影儀,我想要一個遙控器。 我已經弄清楚了所有紅外遙控的東西,也已經能夠將我的 Arduino UNO 配置為 HID 鍵盤(我知道 HID 設備有比 Arduino UNO 更好的解決方案,但我想要這個設置的方式使它成為可能,所以我必須使用 UNO)。 但是,當我嘗試向我的 PC 發送按鍵輸入時,它的行為就像按下控制按鈕一樣(例如,如果我在按下遙控器上的按鈕后按下實際鍵盤上的 A,它會選擇我當前所在頁面上的所有內容)。 我嘗試了一堆不同的鍵碼並查看了其他人的代碼,但找不到我哪里出錯了這里是我目前為我的項目編寫的代碼:
#include <IRremote.hpp>
#include <HID.h>
#include <IRremote.h>
int RECV_PIN = 7;
uint8_t buf[8] = { 0 };
void setup() {
Serial.begin(9600);
IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK);
delay(200);
}
void loop(){
if (IrReceiver.decode()) {
int i;
int command = IrReceiver.decodedIRData.command;
IrReceiver.stop();
switch (command) {
case 70:
Serial.println("Volume +");
buf[2] = 0x80;
Serial.write(buf, 8);
break;
/*
There are a bunch more case statements with different IR commands that
correlate to functions I want the remote to do
*/
}
releaseKey();
delay(500);
IrReceiver.start(8000);
IrReceiver.resume();
}
}
void releaseKey() {
buf[0] = 0;
buf[2] = 0;
Serial.write(buf, 8);
}
刪除打印“Volume +”的行是解決方案。 這顯然不是 HID 固件的有效命令。 請記住始終將您的代碼簡化為最簡單的東西,它應該可以工作但不能工作,這樣您就可以自己解決這樣的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.