Misc files
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

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