Stap 5: PS/2-toetsenbord - Pinouts testen
Nu is het tijd voor de input-methode: een PS/2-toetsenbord. Je kan dit heel veel doen met een USB host schild, maar die zijn een stuk duurder dan een PS/2-connector en een PS/2-toetsenbord, die u mei reeds zijn.
Wat wil je doen eerst, is de kabel uit de PS/2 connector gesneden. Mijne die ik op de bodem van een kabelbox, en het gevonden een PS/2-apparaat geconverteerd naar USB.
Je ziet nu 4 draden, meestal variërend in kleuren. De kleuren in de door mij toevallig groen, zwart, rood en wit. Sluit je Arduino (niet met de staart die eraan verbonden zijn wij gemaakt in de vorige stap) en pak uw draden. Ik gehecht wat uitbreiding draadjes zodat ze langer, en zo kon ik plugin in uw Arduino gemakkelijker. Zet de zwarte draad in de GND-poort van uw Arduino (om het even wie zal doen), aangezien dit waarschijnlijk grond. Pak je rode draad en uit het in de haven van 5v. Sluit uw toetsenbord, en de lichten moeten flash eenmaal, dan opnieuw leeg gaan. Hierdoor hebt u de macht werken. Als dit niet werkt, probeer het doen van verschillende combinaties totdat het toetsenbord wordt aangedreven. Het is nu aan het vinden van de pin van de gegevens, en de IRQ-pin. Sluit één draad naar pin 20, en anderzijds tot en met 21. Als dit niet werkt wanneer u de code uploadt, schakel dan de draden.
Nu installeren van de bibliotheek en de onderstaande code uploaden naar je Arduino. wat er moet gebeuren zodra u begint te typen op het toetsenbord, de tekens die u typt, zal verschijnen in de seriële monitor. Vergeet niet, als het niet werkt, maar het toetsenbord nog bevoegdheden op, probeer de gegevens en de IRQ-pinnen.
De 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>
Bibliotheek: