Skocz do zawartości

Arduino Pro Micro - buttonbox - przy naciśnięciu kilku przycisków na raz, podwajają się, lub naciskają inne


KnoxMystic

Pomocna odpowiedź

Przyciski zachowują się tak jak na filmie - po załączeniu dwóch, trzech i naciśnięciu kolejnego ten następny się podwaja i dzieją się takie dziwne rzeczy?    FILM

Przyciski połączone w "matrix" układ 3x4

Da się to jakoś wyeliminować?

Proszę o pomoc.

Jestem pewny, że połączenia są poprawne w 100%. Kiedyś robiłem ten sam projekt, z większą liczbą przycisków i było to samo.

#include <Keypad.h>
#include <Joystick.h>

#define ENABLE_PULLUPS
#define NUMBUTTONS 12
#define NUMROWS 3
#define NUMCOLS 4

const byte buttons[NUMROWS][NUMCOLS] = {
  {0, 1, 2, 3},
  {4, 5, 6, 7},
  {8, 9, 10, 11},
};

const byte rowPins[NUMROWS] = {21, 20, 19};
const byte colPins[NUMCOLS] = {14, 16, 10, 8};

Keypad keypad = Keypad(makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,
                   JOYSTICK_TYPE_JOYSTICK,
                   12, 0,
                   false, false, false, false, false, false,
                   false, false, false, false, false);

void setup() {
  Joystick.begin();
}

void loop() {
  CheckAllButtons();
}

void CheckAllButtons(void) {
  if (keypad.getKeys()) {
    for (int i = 0; i < LIST_MAX; i++) {
      if (keypad.key[i].stateChanged) {
        switch (keypad.key[i].kstate) {
          case PRESSED:
          case HOLD:
            Joystick.setButton(keypad.key[i].kchar, 1);
            break;
          case RELEASED:
          case IDLE:
            Joystick.setButton(keypad.key[i].kchar, 0);
            break;
        }
      }
    }
  }
}

 

IMG20231029124841 (2).jpg

Link do komentarza
Share on other sites

Pytanie z ciekawości - po co jest ta linijka:

 

12 godzin temu, KnoxMystic napisał:
#define ENABLE_PULLUPS

Poza tym takie podłączonie klawiatury matrycowej nie jest w stanie prawidłowo wykryć wszystkich kombinacji klawiszy. Przykładowo: jeśli naciśniesz 1-1 i 1-2 złapie jak trzeba, ale jeśli do tego dodasz np. 2-1 to jej zdaniem będzie wciśnięty również 2-2. Ciekawe dlaczego 😉

 

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.