所以我想使用Arduino Leonardo作为内置库的键盘输入。
boolean on;
void setup() {
pinMode(13, OUTPUT);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
Keyboard.begin();
on = true;
}
void loop() {
if(digitalRead(2) == LOW) {
Keyboard.end();
on = false;
}
digitalWrite(13, on);
if(digitalRead(3) == LOW) {
Keyboard.press('w');
}
else {
Keyboard.release('w');
}
}
运行“Keyboard.end()”后,“Keyboard.press()”功能是否仍然有效?
我只是不希望Arduino打破,所以提前感谢答案!
答案 0 :(得分:0)
您已在
中使用了begin功能void setup()
{
pinMode(13, OUTPUT);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
Keyboard.begin();
on = true;
}
你已经结束了
中的沟通 if(digitalRead(2) == LOW) {
Keyboard.end();
on = false;
}
一旦digitalRead(2)值变低,通信协议就停止了,你必须先使用另一个Keyboard.begin()
if(digitalRead(3) == LOW)
{
Keyboard.press('w');
}
最佳做法是使用Keyboard.begin();在void loop中
答案 1 :(得分:0)
根据您尝试做的事情,您应该这样做:
#include <Keyboard.h>
boolean on;
boolean disable;
void setup() {
pinMode(13, OUTPUT);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
disable = false;
on = true;
}
void loop() {
if(digitalRead(2) == LOW) {
disable = true;
on = false;
}
digitalWrite(13, on);
if(disable == false) {
if(digitalRead(3) == LOW) {
Keyboard.press('w');
}
else {
Keyboard.release('w');
}
}
}
我开始使用#include
是因为我使用的是最新版本的Arduino IDE。
无论如何,无论你使用的是你的版本还是最新版本的Arduino IDE,Keyboard.begin()
和Keyboard.end()
什么都不做,因为我刚刚在我的Arduino Leonardo式电路板上测试过它(我使用过Leostick而不是真正的Arduino)。我不确定我是否完全正确,它可能取决于不同的操作系统(即使我尝试Windows和Mac时都没有出错)。说实话,我将它们留在那里只是为了安全起见,也是为了让你的代码更容易理解。
顺便说一下,你不会打破你的Arduino。
答案 2 :(得分:0)
键盘{
"type": "record",
"name": "myRecord",
"namespace": "com.test.app_list"
"fields": [
{
"type": "record",
"name": "Id",
"doc": "Device ID",
"fields": [
{
"name": "idType",
"type": "int"
},{
"name": "id",
"type": "string"
}
]
},
{
"type": "record",
"name": "AppList",
"doc": "",
"fields": [
{
"name": "appId",
"type": "string",
"avro.java.string": "String"
},
{
"name": "timestamp",
"type": "long"
},
{
"name": "idList",
"type": [{"type": "array", "items": "com.test.app_list.Id"}]
}
]
}
]
}
和begin
目前无法执行任何操作,省略它们不会影响您的代码。如果您转到Keyboard Library Github repo并查看end
和begin
功能,则会发现它们为空
end