main.cpp 994 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "Arduino.h"
  2. #include "Keyboard.h"
  3. #include "HID.h"
  4. struct Key {
  5. int pin;
  6. char keyCode;
  7. boolean wasPushed;
  8. };
  9. const int NUM_OF_KEYS = 4;
  10. Key keys[NUM_OF_KEYS];
  11. void setup() {
  12. keys[0] = { 5, KEY_LEFT_CTRL , false };
  13. keys[1] = { 4, KEY_LEFT_ALT, false};
  14. keys[2] = { 3, KEY_LEFT_SHIFT, false };
  15. keys[3] = { 2, KEY_LEFT_GUI, false };
  16. // make pins inputs and turn on the
  17. // pullup resistor so they go high unless
  18. // connected to ground:
  19. for(int i = 0; i < NUM_OF_KEYS; i++) {
  20. pinMode(keys[i].pin, INPUT_PULLUP);
  21. }
  22. Keyboard.begin();
  23. }
  24. void loop() {
  25. for(int i = 0; i < NUM_OF_KEYS; i++) {
  26. if((digitalRead(keys[i].pin) == LOW) && (keys[i].wasPushed == false)) {
  27. Keyboard.press(keys[i].keyCode); // Send key down
  28. keys[i].wasPushed = true;
  29. }
  30. else if ((digitalRead(keys[i].pin) == HIGH) && (keys[i].wasPushed == true)) {
  31. Keyboard.release(keys[i].keyCode); // Send key up
  32. keys[i].wasPushed = false;
  33. }
  34. }
  35. delay(10);
  36. }