Arduino通过PS2模块使用PS2键盘
生活随笔
收集整理的這篇文章主要介紹了
Arduino通过PS2模块使用PS2键盘
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在Arduino論壇看到了參考文獻(xiàn)1介紹的內(nèi)容之后,就特別想動(dòng)手試一下,于是在淘寶上買(mǎi)了PS2模塊,實(shí)物圖如下: 該模塊有四個(gè)引腳,意義分別如下: +5V:接電源正極; GND:接電源負(fù)極; DAT:數(shù)據(jù)引腳,可以與任意的Arduino數(shù)字引腳相連; CLK:時(shí)鐘引腳,需要與Arduino中支持中斷的引腳相連,在UNO上是數(shù)字引腳2和3.1、從鍵盤(pán)接收命令 鍵盤(pán)數(shù)據(jù)的原理可以看參考文獻(xiàn)2,那篇文章講解的比較詳細(xì)。我在進(jìn)行測(cè)試的時(shí)候,使用的庫(kù)是從下面的網(wǎng)址中找到的: https://www.pjrc.com/teensy/td_libs_PS2Keyboard.html 該庫(kù)中附帶了兩個(gè)示例代碼,Simple_Test和International,這兩個(gè)示例中International僅僅是將讀取的鍵盤(pán)字符原封不動(dòng)的打印到串口,而Simple_Test則解析了一些特殊符號(hào),例如如果讀取的鍵盤(pán)符號(hào)是回車(chē)符,則調(diào)用串口類(lèi)的println函數(shù)打印空字符。 測(cè)試的實(shí)物連接圖如下: ? 由于使用的示例代碼進(jìn)行測(cè)試,代碼和測(cè)試結(jié)果就不在這里顯示了。只要引腳連接正確,應(yīng)該就可以正常運(yùn)行示例代碼,唯一需要注意的就是CLK引腳要連接支持中斷的引腳,否則就無(wú)法讀取鍵盤(pán)發(fā)送過(guò)來(lái)的數(shù)據(jù)。
2、向鍵盤(pán)發(fā)送命令 第一節(jié)給出的ps2鍵盤(pán)庫(kù)文件可以讀取大部分的鍵盤(pán)信息,但是它只能從鍵盤(pán)讀取信息,無(wú)法向鍵盤(pán)發(fā)送信息。比如如果想控制鍵盤(pán)上的大寫(xiě)燈、小鍵盤(pán)燈的開(kāi)、關(guān),第一節(jié)的庫(kù)就無(wú)法做到。為此,在網(wǎng)上又找了另外一個(gè)高級(jí)的ps2keyboard庫(kù),網(wǎng)址如下: https://github.com/techpaul/PS2KeyAdvanced 使用該庫(kù),當(dāng)按下鍵盤(pán)上的大寫(xiě)燈、小鍵盤(pán)燈時(shí),該庫(kù)在解析鍵盤(pán)信息的同時(shí),將鍵盤(pán)燈設(shè)置為正確的狀態(tài)。該庫(kù)帶有三個(gè)示例,感興趣的朋友可以自行看示例代碼。我進(jìn)行測(cè)試的時(shí)候使用的是advcodetest這個(gè)示例,測(cè)試時(shí)既可以獲取到按鍵信息,同時(shí)可以看到鍵盤(pán)燈的狀態(tài)發(fā)生變化,這里就不貼代碼了,如果對(duì)與鍵盤(pán)的交互原理感興趣,可以看看參考文獻(xiàn)3和4。 使用高級(jí)鍵盤(pán)庫(kù)的注意事項(xiàng)與第一節(jié)類(lèi)似,CLK引腳要連接支持中斷的引腳。
參考文獻(xiàn)[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
2、向鍵盤(pán)發(fā)送命令 第一節(jié)給出的ps2鍵盤(pán)庫(kù)文件可以讀取大部分的鍵盤(pán)信息,但是它只能從鍵盤(pán)讀取信息,無(wú)法向鍵盤(pán)發(fā)送信息。比如如果想控制鍵盤(pán)上的大寫(xiě)燈、小鍵盤(pán)燈的開(kāi)、關(guān),第一節(jié)的庫(kù)就無(wú)法做到。為此,在網(wǎng)上又找了另外一個(gè)高級(jí)的ps2keyboard庫(kù),網(wǎng)址如下: https://github.com/techpaul/PS2KeyAdvanced 使用該庫(kù),當(dāng)按下鍵盤(pán)上的大寫(xiě)燈、小鍵盤(pán)燈時(shí),該庫(kù)在解析鍵盤(pán)信息的同時(shí),將鍵盤(pán)燈設(shè)置為正確的狀態(tài)。該庫(kù)帶有三個(gè)示例,感興趣的朋友可以自行看示例代碼。我進(jìn)行測(cè)試的時(shí)候使用的是advcodetest這個(gè)示例,測(cè)試時(shí)既可以獲取到按鍵信息,同時(shí)可以看到鍵盤(pán)燈的狀態(tài)發(fā)生變化,這里就不貼代碼了,如果對(duì)與鍵盤(pán)的交互原理感興趣,可以看看參考文獻(xiàn)3和4。 使用高級(jí)鍵盤(pán)庫(kù)的注意事項(xiàng)與第一節(jié)類(lèi)似,CLK引腳要連接支持中斷的引腳。
參考文獻(xiàn)[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
總結(jié)
以上是生活随笔為你收集整理的Arduino通过PS2模块使用PS2键盘的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 单片机c语言 软件抗干扰,单片机软件抗干
- 下一篇: 特征选择/筛选方法总结