ho continuato con le prove e credo proprio che perda la definizione della mappa della tastiera...
altre prove effettuate:
-
con la seriale attiva il problema non è mai sorto
-
dopo 2/3 chiamate da remoto non si è mai presentato il problema... dopo una decina si..(non è cmq sistematico, diciamo random)
-
i tasti: 3 - 6 - 9 - # - A - B - C - D continuano a funzionare correttamente
-
alla pressione degli altri non succede nulla, il codice non entra nell' if (key) {
per ovviare mi vinene in mente di ricreare la tastiera ogni volta che finisco la trasmissione in remoto...
i pin usati nell'arduino mega sono questi:
byte rowPins[ROWS] = { 29, 28, 27, 26 }; // Riga0,1,2,3.
byte colPins[COLS] = { 25, 24, 23, 22}; // Colonna0,1,2,3
mentre se volessi provare a ricreare la tastiera dopo ogni chiamata da remoto è sufficente mettere questo corretto?
// Definizione mappa della tastiera
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = { 29, 28, 27, 26 }; // Riga0,1,2,3.
byte colPins[COLS] = { 25, 24, 23, 22}; // Colonna0,1,2,3
// Creazione della tastiera
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
non serve rimettere anche:
const byte ROWS = 4; // Quattro righe
const byte COLS = 4; // Quattro colonne