Schritt 5: PS/2-Tastatur - Test Anschlussbelegungen
Jetzt es Zeit für die Eingabemethode ist: eine PS/2-Tastatur. Sehr viel kann man dies mit einem USB-Host-Schild, aber die sind viel teurer als ein PS/2-Stecker und eine PS/2-Tastatur haben Sie bereits.
Was Sie zuerst tun wollen ist das Kabel aus der PS/2-Stecker geschnitten. Mir fand ich am unteren Rand eine Kabelbox, und es in eine PS/2-Gerät USB konvertiert.
Sehen Sie jetzt 4 Drähte, in der Regel unterschiedlicher Farben. Die Farben in meinem geschehen, grün, schwarz, rot und weiß sein. Schließen Sie Ihre Arduino (nicht mit dem Heck attached to it. gemacht wir im vorherigen Schritt) und schnappen Sie sich Ihre Drähte. Ich legte einige verlaufenden Drähte um sie länger zu machen, und so konnte ich Plugin in Ihrem Arduino einfacher. Legen Sie das schwarze Kabel in den GND-Anschluss des Ihre Arduino (jemand tun wird), da dies am ehesten geschliffen werden. Schnappen Sie sich Ihre roten Draht und im Hafen 5v raus. Schließen Sie die Tastatur, und die Lichter sollten einmal blinken, dann gehen Sie wieder leer. Dies bedeutet, dass Sie die Macht zu arbeiten. Wenn dies nicht funktioniert, versuchen Sie, verschiedene Kombinationen zu tun, bis die Tastatur mit Strom versorgt wird. Jetzt liegt es an der Daten-Pin und die IRQ-Pin zu finden. Schließen Sie ein Kabel auf Pin 20 und die andere bis 21. Sollte dies nicht funktionieren, wenn Sie den Code hochladen, dann wechseln Sie die Drähte.
Nun, installieren Sie die Bibliothek und laden Sie den folgenden Code auf Ihrem Arduino. was geschehen soll, ist, sobald Sie anfangen zu tippen auf der Tastatur, die eingegebenen Zeichen erscheinen in den Serial Monitor. Denken Sie daran, wenn es nicht funktioniert, aber die Tastatur noch schaltet, versuchen Sie, die Daten und IRQ-Pins.
Der 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>
Bibliothek: