Guest User

Untitled

a guest
Nov 24th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. #include <Mouse.h>
  2. #include <Keyboard.h>
  3.  
  4. #define KEYS 12
  5.  
  6. #define LEFT_CLICK 0
  7. #define RIGHT_CLICK -1
  8. #define MIDDLE_CLICK -2
  9.  
  10. int clicks[] = {
  11. MOUSE_LEFT, MOUSE_RIGHT, MOUSE_MIDDLE
  12. };
  13.  
  14. int pins[] = {
  15. 23, 5, 6, 22,
  16. 20, 19, 21, 18,
  17. 3, 11, 8, 9
  18. };
  19.  
  20. int state[] = {
  21. 0, 0, 0, 0,
  22. 0, 0, 0, 0,
  23. 0, 0, 0, 0
  24. };
  25.  
  26. int bindings[] = {
  27. KEY_ESC, '-', KEY_UP_ARROW, '=',
  28. KEY_TAB, KEY_LEFT_ARROW, KEY_DOWN_ARROW, KEY_RIGHT_ARROW,
  29. 'z', 'x', RIGHT_CLICK, LEFT_CLICK
  30. };
  31.  
  32. void setup() {
  33. for (int k = 0; k < KEYS; k++) {
  34. pinMode(pins[k], INPUT_PULLUP);
  35. }
  36.  
  37. Keyboard.begin();
  38. Mouse.begin();
  39. }
  40.  
  41. void loop() {
  42. for (int k = 0; k < KEYS; k++) {
  43. int pressed = digitalRead(pins[k]);
  44.  
  45. if (pressed == 0) {
  46. if (state[k] == 0) {
  47. if (bindings[k] > 0) {
  48. Keyboard.press(bindings[k]);
  49. } else {
  50. Mouse.press(clicks[-bindings[k]]);
  51. }
  52. }
  53.  
  54. state[k] = 1;
  55. } else {
  56. if (state[k] > 0) {
  57. state[k]++;
  58.  
  59. if (state[k] > 128) {
  60. state[k] = 0;
  61. if (bindings[k] > 0) {
  62. Keyboard.release(bindings[k]);
  63. } else {
  64. Mouse.release(clicks[-bindings[k]]);
  65. }
  66. }
  67. }
  68. }
  69. }
  70. }
Add Comment
Please, Sign In to add comment