65.9K
CodeProject 正在变化。 阅读更多。
Home

Arduino ADKeyboard 库

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2014年1月10日

CPOL

1分钟阅读

viewsIcon

11784

downloadIcon

218

一个用于5键模拟键盘的库

引言

我最近从 cooking-hacks 购买了一个5键键盘。我喜欢它,因为它对于简单的任务很有用,并且只需要Arduino上的一个模拟引脚。使用方法也很简单。你从模拟引脚读取不同的值来对应每个按钮,因此可以理解哪个按钮被按下。这里是键盘,以及它的示例代码。我所做的就是将它们打包成一个库。

Using the Code

当你将库文件(AdKeyboard.cpp, AdKeyboard.h)放在Arduino IDE的libraries文件夹中时,你就可以在你的项目中使用了。

// include the header file
#include <AdKeyboard.h>
// instantiate it on Analog0 of the arduino board
AdKeyboard adKeyboard(0); 

你可以通过在setup中向键盘对象提供回调函数来将代码附加到事件上。我已经实现了3个事件。

  • 点击事件:简单的按下和释放事件。
  • 按下事件:按下并保持事件。当你按住一个键一段时间(默认值为2秒)时,如果提供了回调函数,则会执行它。
  • 双键按下事件:类似于按下事件,但你需要同时按住两个键才能触发此事件。这里有一个技巧。你应该先按下索引较高的键,因为硬件实现的原因,索引较低的键会屏蔽较高的键。

让我们将回调函数附加到adKeyboard 对象。

void setup() {
  Serial.begin(9600);
  adKeyboard.setClickCallback(clickHandler);
  adKeyboard.setPressCallback(pressHandler);
  adKeyboard.setTwoPressCallback(twoPressHandler);
} 

以及回调函数

void clickHandler(int key) {
  Serial.print("clickHandler: ");
  Serial.println(key);
}
void pressHandler(int key) {
  Serial.print("pressHandler: ");
  Serial.println(key);
}
void twoPressHandler(int k1, int k2) {
  Serial.print("twoPressHandler: ");
  Serial.print(k1);
  Serial.print(" ");
  Serial.println(k2);
} 

还有一个要点。你必须在主循环中监控键盘。

void loop() {
  adKeyboard.update();
}

就是这样。现在你有了5键键盘用于你的项目。尽情享受吧!

你可以从本文提示顶部的链接下载源代码。

© . All rights reserved.