Greetings! I am using the PS/2 library found here:
http://playground.arduino.cc/Main/PS2Keyboard
Everything hardware wise works great. I cannot for the life of me figure out how to put the incoming key strokes, specifically for letters to play well with conditional statements.
here is my code attempt..its essentially the same as the example, slightly modified.
/* PS2Keyboard library example
PS2Keyboard now requries both pins specified for begin()
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@gmail.com on 2010-03-22
Modified by Paul Stoffregen <paul@pjrc.com> June 2010
*/
#include <PS2Keyboard.h>
#include "binary.h"
typedef uint8_t boolean;
typedef uint8_t byte;
const int DataPin = 8;
const int IRQpin = 3; //MUST BE PINS 2 OR 3 IF USING ARDUINO UNO
PS2Keyboard keyboard;
byte a;
int values = 0;
void setup() {
delay(1000);
keyboard.begin(DataPin, IRQpin);
Serial.begin(115200);
Serial.println("Keyboard Test:");
}
void loop() {
if (keyboard.available()) {
// read the next key
char c = keyboard.read();
Serial.print(c);
// 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_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
while(Serial.available()){
values = Serial.read();
if (values=='a' ){ //
Serial.println ("entered A");
}
}
}
Everything compiles, but Im not sure why this chunk below does not show the print message:
while(Serial.available()){
values = Serial.read();
** if (values=='a' ){ //
Serial.println ("entered A");**