Misc files
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "HID-Project.h"
  2. //debounce milliseconds
  3. const int debounce = 10;
  4. //Switch Pins
  5. const byte k[2] = { 2, 3 };
  6. //Switch status
  7. boolean s[2] = { 0, 0 };
  8. //LED Pins
  9. const byte l[2] = { 10, 9 };
  10. //M for Media Key, K for Keyboard
  11. const char codetype[6] = { 'K', 'K' };
  12. //Keycodes
  13. const ConsumerKeycode ccode[2] = { MEDIA_VOLUME_MUTE,
  14. MEDIA_PLAY_PAUSE
  15. };
  16. const KeyboardKeycode kcode[2] = { KEY_UP_ARROW,
  17. KEY_DOWN_ARROW
  18. };
  19. void setup() {
  20. Keyboard.begin();
  21. Consumer.begin();
  22. //setup inputs, turn on pullups
  23. for (int i = 0; i <= 1; i++) {
  24. pinMode(k[i], INPUT);
  25. digitalWrite(k[i], 1);
  26. pinMode(l[i], OUTPUT);
  27. }
  28. }
  29. void loop() {
  30. CheckKeys();
  31. delay(debounce);
  32. }
  33. void CheckKeys() {
  34. for (int i = 0; i <= 1; i++) {
  35. if (codetype[i] == 'M') {
  36. if (digitalRead(k[i]) == 0) {
  37. if (s[i] == 0) {
  38. Consumer.press((ccode[i]));
  39. s[i] = 1;
  40. digitalWrite(l[i], 1);
  41. }
  42. }
  43. else {
  44. if (s[i] == 1) {
  45. s[i] = 0;
  46. digitalWrite(l[i], 0);
  47. Consumer.release((ccode[i]));
  48. }
  49. }
  50. }
  51. if (codetype[i] == 'K') {
  52. if (digitalRead(k[i]) == 0) {
  53. if (s[i] == 0) {
  54. Keyboard.press((kcode[i]));
  55. s[i] = 1;
  56. digitalWrite(l[i], 1);
  57. }
  58. }
  59. else {
  60. if (s[i] == 1) {
  61. s[i] = 0;
  62. digitalWrite(l[i], 0);
  63. Keyboard.release((kcode[i]));
  64. }
  65. }
  66. }
  67. }
  68. }