Arduino微型键盘

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino微型键盘相关的知识,希望对你有一定的参考价值。

我正在尝试用我的Arduino Micro制作键盘。电路没问题,但我对代码有一些问题,希望你能在这里给我一个手。现在,我只是尝试使用第8针中的一个键,当您按下按钮时,该键应该在Web浏览器中打开一个新选项卡。现在只需一把钥匙即可查看它是否有效。

我有这个代码:

#include <Keyboard.h>

void setup() {
  // put your setup code here, to run once:
  pinMode(8, INPUT);
  Keyboard.begin(); // setup keyboard
}

void loop() {
  // check buttons
  if (readButton(8)) {
    doAction(8);
  }
}

boolean readButton(int pin) {
  // check and debounce buttons
  if (digitalRead(pin) == HIGH) {
    delay(10000);
    if (digitalRead(pin) == HIGH) {
      return true;
    }
  }
  return false;
}

void doAction(int pin) {
  // perform tasks
  switch (pin) {
    case 8:
      // CMD + T (new tab, Chrome)
      Keyboard.press(KEY_LEFT_GUI);
      Keyboard.press('t');
      delay(10000);
      Keyboard.releaseAll();
      break;

  }
}

但是一旦我上传了代码,它会自动开启新标签10秒钟,然后再停止10秒钟再次开始。所有这一切都没有按下按钮,它会自动完成。知道我错了吗?

答案

您正在使用Keyboard.press(),根据文档

当被调用时,Keyboard.press()functions就好像键被按下并保持在键盘上一样。

也就是说,你按下并按住键。因此,Arduino不断将密钥序列CMD + T (new tab, Chrome)发送到您的PC,因此Chrome将继续打开新标签。

在给予足够的延迟后你需要release,这样你只需要向应用程序发送一次按键。

要结束按键,请使用Keyboard.release()Keyboard.releaseAll()

从您使用过的delay(10000)可以看出10秒钟。

以上是关于Arduino微型键盘的主要内容,如果未能解决你的问题,请参考以下文章

arduino虚拟键盘开发环境及对应键盘按键代码

使用 Arduino 在 LCD 屏幕上显示来自键盘的输入

布防/撤防家庭安全系统 arduino 键盘 lcd

(Arduino Mega2560)键盘密码检查

从Arduino中的键盘传递全局变量数组的元素

矩阵键盘 4*4 arduino