欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(124)---PS2接口模塊 [打印本頁]

作者: eagler8    時(shí)間: 2019-9-24 19:42
標(biāo)題: 【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(124)---PS2接口模塊
37款傳感器與模塊的提法,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和模塊,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟睿詫W(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動(dòng)手試試做實(shí)驗(yàn),不管成功與否,都會(huì)記錄下來---小小的進(jìn)步或是搞不定的問題,希望能夠拋磚引玉。

【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
實(shí)驗(yàn)一百二十四: PS2鼠標(biāo) 鍵盤插座接口 PS2模塊






作者: eagler8    時(shí)間: 2019-9-24 20:05


PS/2接口
上古接口之一,PS/2接口曾經(jīng)是最常見的鼠標(biāo)接口,最初是IBM公司的專利,俗稱“小口”。這是一種鼠標(biāo)和鍵盤的專用接口,一種6針的圓型接口。但鼠標(biāo)只使用其中的4針傳輸數(shù)據(jù)和供電,其余2個(gè)為空腳。PS/2接口的傳輸速率比COM接口稍快一些,而且是ATX主板的標(biāo)準(zhǔn)接口,當(dāng)時(shí)應(yīng)用最為廣泛的鼠標(biāo)接口之一,但仍然不能使高檔鼠標(biāo)完全發(fā)揮其性能,而且不支持熱插拔。在BTX主板規(guī)范中,這也是即將被淘汰掉的接口。需要注意的是,在連接PS/2接口鼠標(biāo)時(shí)不能錯(cuò)誤地插入鍵盤PS/2接口(當(dāng)然,也不能把PS/2鍵盤插入鼠標(biāo)PS/2接口)。一般情況下,符合PC99規(guī)范的主板,其鼠標(biāo)的接口為綠色、鍵盤的接口為紫色,另外也可以從PS/2接口的相對(duì)位置來判斷:靠近主板PCB的是鍵盤接口,其上方的是鼠標(biāo)接口。





作者: eagler8    時(shí)間: 2019-9-24 21:13
PS/2通訊協(xié)議
PS/2鼠標(biāo)接口采用一種雙向同步串行協(xié)議。即每在時(shí)鐘線上發(fā)一個(gè)脈沖,就在數(shù)據(jù)線上發(fā)送一位數(shù)據(jù)。在相互傳輸中,主機(jī)擁有總線控制權(quán),即它可以在任何時(shí)候抑制鼠標(biāo)的發(fā)送。方法是把時(shí)鐘線一直拉低,鼠標(biāo)就不能產(chǎn)生時(shí)鐘信號(hào)和發(fā)送數(shù)據(jù)。在兩個(gè)方向的傳輸中,時(shí)鐘信號(hào)都是由鼠標(biāo)產(chǎn)生,即主機(jī)不產(chǎn)生通信時(shí)鐘信號(hào)。 如果主機(jī)要發(fā)送數(shù)據(jù),它必須控制鼠標(biāo)產(chǎn)生時(shí)鐘信號(hào)。方法如下:主機(jī)首先下拉時(shí)鐘線至少100μs抑制通信,然后再下拉數(shù)據(jù)線,最后釋放時(shí)鐘線。通過這一時(shí)序控制鼠標(biāo)產(chǎn)生時(shí)鐘信號(hào)。當(dāng)鼠標(biāo)檢測(cè)到這個(gè)時(shí)序狀態(tài),會(huì)在10ms內(nèi)產(chǎn)生時(shí)鐘信號(hào)。如圖3中 A 時(shí)序段。主機(jī)和鼠標(biāo)之間,傳輸數(shù)據(jù)幀的時(shí)序如圖2、圖3所示。2.2 數(shù)據(jù)包結(jié)構(gòu)在主機(jī)程序中,利用每個(gè)數(shù)據(jù)位的時(shí)鐘脈沖觸發(fā)中斷,在中斷例程中實(shí)現(xiàn)數(shù)據(jù)位的判斷和接收。在實(shí)驗(yàn)過程中,通過合適的編程,能夠正確控制并接收鼠標(biāo)數(shù)據(jù)。但該方案有一點(diǎn)不足,由于每個(gè)CLOCK都要產(chǎn)生一次中斷,中斷頻繁,需要耗用大量的主機(jī)資源。





作者: eagler8    時(shí)間: 2019-9-24 21:26

PS/2接口的引腳定義
是第1針傳數(shù)據(jù),第2針閑置,第3針接地(負(fù)極),第4針接+5V電源,第5針是時(shí)鐘,第6針也是閑置的。拆開PS/2接口的鍵盤,你會(huì)發(fā)現(xiàn)除了一張‘電路圖’外,還有一塊比豆腐大不了多少的PCB板。這塊電路板上標(biāo)有V、G、C、D四個(gè)焊點(diǎn)——V是Vcc電源,就是接電源正極,多數(shù)是接紅線;G是地線,就是電源負(fù)極,多數(shù)是接黑線;C是時(shí)鐘,有的接黃線,有的是綠線;D是數(shù)據(jù),多數(shù)是綠線或者藍(lán)線,也有黃線。顏色不靠譜,建議你先把負(fù)極和正極接好,然后把剩下的C、D兩根線隨便接上試試,不行再對(duì)調(diào)就好了。





作者: eagler8    時(shí)間: 2019-9-25 07:14




作者: eagler8    時(shí)間: 2019-9-25 07:24


PS/2接口和USB接口的區(qū)別

PS2接口的特性:
1.物理連接:一般,具有五腳連接器的鍵盤稱之為AT鍵盤,而具有六腳mini-DIN連接器的鍵盤則稱之為PS/2鍵盤。其實(shí)這兩種連接器都只有四個(gè)腳有意義。它們分別是Clock、Data、+5V和Ground。在PS/2鍵盤與PC機(jī)的物理連接上只要保證這四根線一一對(duì)應(yīng)就可以了。PS/2鍵盤靠PC的PS/2端口提供+5V電源,另外兩個(gè)腳Clock和Data都是集電極開路的,所以必須接大阻值的上拉電阻。它們平時(shí)保持高電平,有輸出時(shí)才被拉到低電平,之后自動(dòng)上浮到高電平。
2.電氣特性:PS/2通訊協(xié)議是一種雙向同步串行通訊協(xié)議。
通訊的兩端通過Clock同步,并通過Data交換數(shù)據(jù)。任何一方如果想抑制另外一方通訊時(shí),只需要把Clock拉到低電平。如果是PC機(jī)和PS/2鍵盤間的通訊,則PC機(jī)必須做主機(jī),也就是說,PC機(jī)可以抑制PS/2鍵盤發(fā)送數(shù)據(jù),而PS/2鍵盤則不會(huì)抑制PC機(jī)發(fā)送數(shù)據(jù)。一般兩設(shè)備間傳輸數(shù)據(jù)的最大時(shí)鐘頻率是33kHz,大多數(shù)PS/2設(shè)備工作在10~20kHz。推薦值在15kHz左右,也就是說,Clock高、低電平的持續(xù)時(shí)間都為40μs。

USB接口的優(yōu)勢(shì):
1.可以熱插拔。就是用戶在使用外接設(shè)備時(shí),不需要關(guān)機(jī)再開機(jī)等動(dòng)作,而是在電腦工作時(shí),直接將USB插上使用。
2.攜帶方便。USB設(shè)備大多以“小、輕、薄”見長,對(duì)用戶來說,隨身攜帶大量數(shù)據(jù)時(shí),很方便。當(dāng)然USB硬盤是首要之選了。
3.標(biāo)準(zhǔn)統(tǒng)一。大家常見的是IDE接口的硬盤,串口的鼠標(biāo)鍵盤,并口的打印機(jī)掃描儀,可是有了USB之后,這些應(yīng)用外設(shè)統(tǒng)統(tǒng)可以用同樣的標(biāo)準(zhǔn)與個(gè)人電腦連接,這時(shí)就有了USB硬盤、USB鼠標(biāo)、USB打印機(jī)等等。
4.可以連接多個(gè)設(shè)備。USB在個(gè)人電腦上往往具有多個(gè)接口,可以同時(shí)連接幾個(gè)設(shè)備,如果接上一個(gè)有四個(gè)端口的USB HUB時(shí),就可以再連上;四個(gè)USB設(shè)備,以此類推,盡可以連下去,將你家的設(shè)備都同時(shí)連在一臺(tái)個(gè)人電腦上而不會(huì)有任何問題。

USB支持熱插撥,而PS2接口不可以,所以論便捷性USB完勝PS2,其次就是鼠標(biāo)USB接口的傳輸率比PS2要高一些,主要體現(xiàn)在游戲里的鼠標(biāo)移動(dòng)上,不過一般來說感覺不出來,至于鍵盤接口是USB或者是PS2那就沒什么區(qū)別了,不過最主要還是USB支持熱插撥,這點(diǎn)很重要,而且USB接口也是主流標(biāo)準(zhǔn)了,PS2已經(jīng)完全失去意義了。包括價(jià)格上USB也比PS2貴不了多少錢,所以USB接口完勝。

但在鍵位組合上,PS/2可以實(shí)現(xiàn)全無沖突,USB下只能是最多6個(gè)可以同時(shí)按下。 USB鍵盤的一個(gè)數(shù)據(jù)包只有8個(gè)字節(jié)(為什么只有8個(gè),這是因?yàn)閰f(xié)議規(guī)定,為什么協(xié)議這么規(guī)定,是因?yàn)樵缙诘臅r(shí)候USB速度慢,使用中斷傳輸一個(gè)包最大就8個(gè)字節(jié)),其中2個(gè)字節(jié)標(biāo)記狀態(tài),其余6個(gè)字節(jié)用來記錄當(dāng)前按下或者彈起的按鍵的掃描碼,所以,USB鍵盤最多同時(shí)描述6個(gè)按鍵的狀態(tài)。

在穩(wěn)定上,PS/2還是要好過USB的,當(dāng)然USB的話雖沒有PS/2的穩(wěn)定,可有不錯(cuò)的擴(kuò)展,如可以在USB的鍵盤中加入U(xiǎn)SB HUB。


作者: eagler8    時(shí)間: 2019-9-25 07:37

關(guān)于USB接口和PS/2接口轉(zhuǎn)換
電腦中四根線USB接口,兩邊的兩根是電源線,中間的兩根是數(shù)據(jù)線。usb接口的4根線一般是下面這樣分配的,需要注意的是千萬不要把正負(fù)極弄反了,否則會(huì)燒掉usb設(shè)備或者電腦的南橋芯片:
黑線:gnd       電源負(fù)極
紅線:vcc       電源正極
綠線:data+     信號(hào)正極
白線:data-     信號(hào)負(fù)極


作者: eagler8    時(shí)間: 2019-9-25 07:54



此模塊是由PS2接口轉(zhuǎn)普通2.54MM接口,方便電腦鍵盤或鼠標(biāo)與arduino連接。

作者: eagler8    時(shí)間: 2019-9-25 08:01

模塊參數(shù)
工作電壓:5V(DC)
接口:4PIN接口5V、GND、DAT、CLK
輸出信號(hào):數(shù)字信號(hào)
尺寸:21*17*17mm
重量:5.5g


作者: eagler8    時(shí)間: 2019-9-25 08:06


作者: eagler8    時(shí)間: 2019-9-25 08:08


作者: eagler8    時(shí)間: 2019-9-25 10:33

根據(jù)圖上的引腳把 PS/2 接口與 Arduino 連接起來,對(duì)應(yīng)關(guān)系如下表。

5V :      - Arduino 5V out
Ground : - Arduino GND
Clock :    - Arduino Pin 3
Data :     - Arduino Pin 8


作者: eagler8    時(shí)間: 2019-9-25 10:36
  1. /*
  2. 【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
  3. 實(shí)驗(yàn)一百二十四: PS2鼠標(biāo) 鍵盤插座接口 PS2模塊
  4. 1、安裝< PS2Keyboard.h>庫
  5. (https://www.pjrc.com/teensy/arduino_libraries/PS2Keyboard.zip)
  6. 2、項(xiàng)目:在 Arduino 上使用 PS/2 鍵盤進(jìn)行輸入測(cè)試
  7. 3、PS/2 接口與 Arduino 接腳
  8. 5V :      - Arduino 5V out
  9. Ground : - Arduino GND
  10. Clock :    - Arduino Pin 3
  11. Data :     - Arduino Pin 8
  12. */
  13.    
  14. #include <PS2Keyboard.h>

  15. const int DataPin = 8;
  16. const int IRQpin =  3;

  17. PS2Keyboard keyboard;

  18. void setup() {
  19.   //keyboard.begin(DataPin, IRQpin, PS2Keymap_US);
  20.   keyboard.begin(DataPin, IRQpin, PS2Keymap_German);
  21.   //keyboard.begin(DataPin, IRQpin, PS2Keymap_French);
  22.   Serial.begin(9600);
  23.   Serial.println("International Keyboard Test:");
  24. }

  25. void loop() {
  26.   if (keyboard.available()) {
  27.     char c = keyboard.read();
  28.     Serial.println(c);
  29.   }
  30. }
復(fù)制代碼



作者: eagler8    時(shí)間: 2019-9-25 10:38


作者: eagler8    時(shí)間: 2019-9-25 10:46
  1. /*
  2. 【Arduino】108種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
  3. 實(shí)驗(yàn)一百二十四: PS2鼠標(biāo) 鍵盤插座接口 PS2模塊
  4. 1、安裝< PS2Keyboard.h>庫
  5. (https://www.pjrc.com/teensy/arduino_libraries/PS2Keyboard.zip)
  6. 2、項(xiàng)目:在 Arduino 上使用 PS/2 鍵盤進(jìn)行輸入測(cè)試(識(shí)別一些特殊按鍵)
  7. 3、PS/2 接口與 Arduino 接腳
  8. 5V :      - Arduino 5V out
  9. Ground : - Arduino GND
  10. Clock :    - Arduino Pin 3
  11. Data :     - Arduino Pin 8
  12. */
  13.    
  14. #include <PS2Keyboard.h>

  15. const int DataPin = 8;
  16. const int IRQpin =  3;

  17. PS2Keyboard keyboard;

  18. void setup() {
  19.   delay(1000);
  20.   keyboard.begin(DataPin, IRQpin);
  21.   Serial.begin(9600);
  22.   Serial.println("Keyboard Test:");
  23. }

  24. void loop() {
  25.   if (keyboard.available()) {
  26.    
  27.     // read the next key
  28.     char c = keyboard.read();
  29.    
  30.     // check for some of the special keys
  31.     if (c == PS2_ENTER) {
  32.       Serial.println();
  33.     } else if (c == PS2_TAB) {
  34.       Serial.print("[Tab]");
  35.     } else if (c == PS2_ESC) {
  36.       Serial.print("[ESC]");
  37.     } else if (c == PS2_PAGEDOWN) {
  38.       Serial.print("[PgDn]");
  39.     } else if (c == PS2_PAGEUP) {
  40.       Serial.print("[PgUp]");
  41.     } else if (c == PS2_LEFTARROW) {
  42.       Serial.print("[Left]");
  43.     } else if (c == PS2_RIGHTARROW) {
  44.       Serial.print("[Right]");
  45.     } else if (c == PS2_UPARROW) {
  46.       Serial.print("[Up]");
  47.     } else if (c == PS2_DOWNARROW) {
  48.       Serial.print("[Down]");
  49.     } else if (c == PS2_DELETE) {
  50.       Serial.print("[Del]");
  51.     } else {
  52.       
  53.       // otherwise, just print all normal characters
  54.       Serial.print(c);
  55.     }
  56.   }
  57. }
復(fù)制代碼



作者: eagler8    時(shí)間: 2019-9-25 10:48


作者: eagler8    時(shí)間: 2019-9-25 11:02


說明: PS2鼠標(biāo)尚未找到,相關(guān)實(shí)驗(yàn)待后續(xù)........






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1