您的位置:首页 > 产品设计 > UI/UE

Arduino通过PS2模块使用PS2键盘

2017-11-12 20:02 573 查看
在Arduino论坛看到了参考文献1介绍的内容之后,就特别想动手试一下,于是在淘宝上买了PS2模块,实物图如下:

该模块有四个引脚,意义分别如下: +5V:接电源正极; GND:接电源负极; DAT:数据引脚,可以与任意的Arduino数字引脚相连; CLK:时钟引脚,需要与Arduino中支持中断的引脚相连,在UNO上是数字引脚2和3.1、从键盘接收命令 键盘数据的原理可以看参考文献2,那篇文章讲解的比较详细。我在进行测试的时候,使用的库是从下面的网址中找到的: https://www.pjrc.com/teensy/td_libs_PS2Keyboard.html 该库中附带了两个示例代码,Simple_Test和International,这两个示例中International仅仅是将读取的键盘字符原封不动的打印到串口,而Simple_Test则解析了一些特殊符号,例如如果读取的键盘符号是回车符,则调用串口类的println函数打印空字符。 测试的实物连接图如下:

  由于使用的示例代码进行测试,代码和测试结果就不在这里显示了。只要引脚连接正确,应该就可以正常运行示例代码,唯一需要注意的就是CLK引脚要连接支持中断的引脚,否则就无法读取键盘发送过来的数据。
2、向键盘发送命令 第一节给出的ps2键盘库文件可以读取大部分的键盘信息,但是它只能从键盘读取信息,无法向键盘发送信息。比如如果想控制键盘上的大写灯、小键盘灯的开、关,第一节的库就无法做到。为此,在网上又找了另外一个高级的ps2keyboard库,网址如下: https://github.com/techpaul/PS2KeyAdvanced 使用该库,当按下键盘上的大写灯、小键盘灯时,该库在解析键盘信息的同时,将键盘灯设置为正确的状态。该库带有三个示例,感兴趣的朋友可以自行看示例代码。我进行测试的时候使用的是advcodetest这个示例,测试时既可以获取到按键信息,同时可以看到键盘灯的状态发生变化,这里就不贴代码了,如果对与键盘的交互原理感兴趣,可以看看参考文献3和4。 使用高级键盘库的注意事项与第一节类似,CLK引脚要连接支持中断的引脚。
参考文献[1]http://www.arduino.cn/forum.php?mod=viewthread&tid=42139&highlight=ps2[2]http://www.freebuf.com/sectool/59045.html[3]http://codeandlife.com/2013/07/15/arduino-ps2-keyboard-tester/[4]http://www.computer-engineering.org/ps2protocol/[5]https://github.com/techpaul/PS2KeyAdvanced
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐