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微型键盘的主要内容,如果未能解决你的问题,请参考以下文章