Étape 5: PS/2 clavier - essais de brochage
Il est maintenant temps pour la méthode de saisie : un clavier PS/2. Vous pouvez très bien le faire avec un bouclier d’hôte USB, mais ceux qui sont beaucoup plus chers qu’un connecteur PS/2 et un clavier PS/2, que vous avez probablement déjà.
Ce que vous voudrez faire tout d’abord, est de couper le câble au connecteur PS/2. Moi que j’ai trouvé au fond d’une boîte de câble et il converti un périphérique PS/2 vers USB.
Vous devriez maintenant voir 4 fils, variant généralement en couleurs. Les couleurs dans le mien arrive d’être vert, noir, rouge et blanc. Branchez votre Arduino (pas avec la queue attachée à elle, nous avons fait à l’étape précédente) et saisir votre fils. J’ai joint quelques fils qui s’étend pour les rendre plus longs, et donc je ne pouvais plugin dans votre Arduino plus facile. Mettre le fil noir dans le port de masse de votre Arduino (l’un fera l’affaire), car il s’agit très probablement à moudre. Prenez votre fil rouge et il dehors dans le port de 5v. Branchez votre clavier, et les lumières doivent clignoter une fois, puis reparti vides. Cela signifie que vous avez le travail de puissance. Si cela ne fonctionne pas, essayez de faire différentes combinaisons jusqu'à ce que le clavier est alimenté. C’est maintenant trouver la broche de données et la broche d’IRQ. Branchez un fil à broche 20 et l’autre à 21. Si cela ne fonctionne pas lorsque vous téléchargez le code, puis intervertir les fils.
Maintenant, installez la bibliothèque et télécharger le code ci-dessous sur votre Arduino. ce qui doit arriver est une fois que vous commencez à taper sur le clavier, les caractères que vous tapez seront affiché dans le moniteur de la série. N’oubliez pas, si cela ne fonctionne pas, mais votre clavier met encore, essayez de changer les données et les goupilles d’IRQ.
Le code :
<p>/* PS2Keyboard library example<br> PS2Keyboard now requries both pins specified for begin()</p><p> keyboard.begin(data_pin, irq_pin); Valid irq pins: Arduino Uno: 2, 3 Arduino Due: All pins, except 13 (LED) Arduino Mega: 2, 3, 18, 19, 20, 21 Teensy 2.0: All pins, except 13 (LED) Teensy 2.0: 5, 6, 7, 8 Teensy 1.0: 0, 1, 2, 3, 4, 6, 7, 16 Teensy++ 2.0: 0, 1, 2, 3, 18, 19, 36, 37 Teensy++ 1.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 on 2010-03-22 Modified by Paul Stoffregen June 2010 */ #include </p><p>const int DataPin = 8; const int IRQpin = 5;</p><p>PS2Keyboard keyboard;</p><p>void setup() { delay(1000); keyboard.begin(DataPin, IRQpin); Serial.begin(9600); Serial.println("Keyboard Test:"); }</p><p>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("[Tab]"); } else if (c == PS2_ESC) { Serial.print("[ESC]"); } else if (c == PS2_PAGEDOWN) { Serial.print("[PgDn]"); } else if (c == PS2_PAGEUP) { Serial.print("[PgUp]"); } else if (c == PS2_LEFTARROW) { Serial.print("[Left]"); } else if (c == PS2_RIGHTARROW) { Serial.print("[Right]"); } else if (c == PS2_UPARROW) { Serial.print("[Up]"); } else if (c == PS2_DOWNARROW) { Serial.print("[Down]"); } else if (c == PS2_DELETE) { Serial.print("[Del]"); } else { // otherwise, just print all normal characters Serial.print(c); } } }</p>
Bibliothèque :