PS2 键盘座测试-Arduino中文社区 - Powered by Discuz! Archiver

Zoologist 发表于 2017-2-5 14:22

PS2 键盘座测试

之前我使用 PS2 键盘鼠标都是直接剪开线的,这样看起来很不专业,前一段购物正好看到有PS2座就顺手买了一个(2元)。

                              有了它,键盘可以直接插在上面和 Arduino连接。
对应的库可以在这里【参考1】下载到。特别注意: Uno 要使用 2 3 Pin,定义如下 #include"PS2Keyboard.h" const intDataPin = 2;const int IRQpin=3; 就是说 Data接2, CLK接3 (这个和终端请求有关系,不可以随便更换),测代码:
/*PS2Keyboard library example

PS2Keyboard now requries both pins specified for begin()

keyboard.begin(data_pin, irq_pin);

Valid irq pins:
   Arduino:      2, 3
   Arduino Mega: 2, 3, 18, 19, 20, 21
   Teensy 1.0:   0, 1, 2, 3, 4, 6, 7, 16
   Teensy 2.0:   5, 6, 7, 8
   Teensy++ 1.0: 0, 1, 2, 3, 18, 19, 36, 37
   Teensy++ 2.0: 0, 1, 2, 3, 18, 19, 36, 37
   Sanguino:   2, 10, 11

for more information you can read the original wiki in arduino.cc
at http://www.arduino.cc/playground/Main/PS2Keyboard
or http://www.pjrc.com/teensy/td_libs_PS2Keyboard.html

Like the Original library and example this is under LGPL license.

Modified by Cuninganreset@gmail.com on 2010-03-22
Modified by Paul Stoffregen <paul@pjrc.com> June 2010
*/

#include "PS2Keyboard.h"

const int DataPin = 2;
const int IRQpin =3;

PS2Keyboard keyboard;

void setup() {
delay(1000);
keyboard.begin(DataPin, IRQpin);
Serial.begin(9600);
Serial.println("Keyboard Test:");
}

void loop() {
if (keyboard.available()) {
   
    // read the next key
    char c = keyboard.read();
   
    // check for some of the special keys
    if (c == PS2_ENTER) {
      Serial.println();
    } else if (c == PS2_TAB) {
      Serial.print("");
    } else if (c == PS2_ESC) {
      Serial.print("");
    } else if (c == PS2_PAGEDOWN) {
      Serial.print("");
    } else if (c == PS2_PAGEUP) {
      Serial.print("");
    } else if (c == PS2_LEFTARROW) {
      Serial.print("");
    } else if (c == PS2_RIGHTARROW) {
      Serial.print("");
    } else if (c == PS2_UPARROW) {
      Serial.print("");
    } else if (c == PS2_DOWNARROW) {
      Serial.print("");
    } else if (c == PS2_DELETE) {
      Serial.print("");
    } else {
   
      // otherwise, just print all normal characters
      Serial.print(c);
    }
}
} 运行结果 参考:1. http://playground.arduino.cc/Main/PS2Keyboard

jackten 发表于 2017-2-5 15:43

厉害厉害                     

四年级 发表于 2017-2-6 10:04

666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666

单片机菜鸟 发表于 2017-2-6 12:42

厉害 666666

仮面龙骑 发表于 2017-2-28 22:56

你好,我也在淘宝上买了个ps2的键盘座,用PS2Keyboard库自带的例子测了一下
好像是键盘座CLK引脚必须要接数字引脚2或者3,键盘座dat引脚接其它的数字引脚都可以

Zoologist 发表于 2017-3-1 08:32

仮面龙骑 发表于 2017-2-28 22:56
你好,我也在淘宝上买了个ps2的键盘座,用PS2Keyboard库自带的例子测了一下
好像是键盘座CLK引脚必须要接数 ...

嗯 是的,有这个要求

仮面龙骑 发表于 2017-3-1 21:41

Zoologist 发表于 2017-3-1 08:32
嗯 是的,有这个要求

我还有个疑问,键盘插到电脑上之后,按了大写键或者小键盘的NumLock键后,键盘灯会亮,但是我在
PS2Keyboard库提供的函数中没有看到能够设置键盘灯的函数,是不是这个库还不完整啊?

Zoologist 发表于 2017-3-1 22:18

仮面龙骑 发表于 2017-3-1 21:41
我还有个疑问,键盘插到电脑上之后,按了大写键或者小键盘的NumLock键后,键盘灯会亮,但是我在
PS2Keyb ...

有可能的,你可以搜搜看一下。

系统中的做法是如果发现有 numlock按下会发出广播的

usb就是这样的,我想 ps2应该也一样

仮面龙骑 发表于 2017-3-1 22:57

http://codeandlife.com/2013/07/15/arduino-ps2-keyboard-tester/
在这里找到个例子,是向键盘发送命令的,里面也有示例代码

Zoologist 发表于 2017-3-2 08:06

仮面龙骑 发表于 2017-3-1 22:57
http://codeandlife.com/2013/07/15/arduino-ps2-keyboard-tester/
在这里找到个例子,是向键盘发送命令的 ...

嗯嗯 看到了不错~
页: [1]
查看完整版本: PS2 键盘座测试