1 //Source: http://dduino.blogspot.com/2011/11/arduino-ps2-emulator-computer-control.html
4 #include "ps2dev.h" // to emulate a PS/2 device
5 PS2dev keyboard(19,18); // PS2dev object (2:data, 3:clock)
6 int enabled = 0; // pseudo variable for state of "keyboard"
7 unsigned char c; //char stores data recieved from computer for KBD
13 //acknowledge commands
14 while(keyboard.write(0xFA));
17 int keyboardcommand(int command)
24 //the while loop lets us wait for the host to be ready
25 while(keyboard.write(0xAA)!=0);
30 case 0xF6: //set defaults
34 case 0xF5: //disable data reporting
39 case 0xF4: //enable data reporting
44 case 0xF3: //set typematic rate
46 keyboard.read(&val); //do nothing with the rate
49 case 0xF2: //get device id
54 case 0xF0: //set scan code set
56 keyboard.read(&val); //do nothing with the rate
63 case 0xED: //set/reset LEDs
65 keyboard.read(&val); //do nothing with the rate
66 Serial.print("LEDs: ");
67 Serial.println(val, HEX);
68 digitalWrite(LED_BUILTIN, val);
77 // send the keyboard start up
78 while(keyboard.write(0xAA)!=0);
80 // initialize the serial port:
82 pinMode(LED_BUILTIN, OUTPUT);
87 //if host device wants to send a command:
88 if(keyboard.available())
90 while(keyboard.read(&c));
100 keyboard.write(0x16);
101 keyboard.write(0xF0);
102 keyboard.write(0x16);