salve ragazzi, sto facendo un piccolo sketch, per imparare ad utilizzare i tastierini a matrice
mi sono servito della keypad.h
ho una matrice 2 righe ,3 colonne e 6 led.
quello che voglio realizzare è semplice, spingo un tasto si accende il led corrispondente, ri-premo il tasto e il led corrispondente si spegne.
questo è il codice che ho prodotto
#include <Keypad.h>
const byte ROWS = 2; // two rows
const byte COLS = 3; // Three columns
// Define the Keymap
char keys[ROWS][COLS] = {
{0,1,2},
{3,4,5}
};
int stato[6]={LOW,LOW,LOW,LOW,LOW,LOW};
int led[6]={32,30,28,26,24,22};
// Connect keypad ROW
byte rowPins[ROWS] = {2,3};
// Connect keypad COL
byte colPins[COLS] = {4,5,6};
// Create the Keypad
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
int a=0;
for(a=0;a<7;a++)
{ pinMode(led[a], OUTPUT);
}
}
void loop()
{
char key = kpd.getKey();
if(key) // Check for a valid key.
{
if(stato[key]==LOW)
{stato[key]=HIGH;}
else
{stato[key]=LOW;}
}
int i=0;
for(i=0;i<6;i++)
{ digitalWrite(led[i],stato[i]); }
}
allora, il codice fa quello che deve per i primi 5 switch e led, se premo il 6° sw il 6° led non si accende.
ho provato a ricontrollare il codice, ma non riesco a capire cosa non va, mi date una mano??
saluti! e grazie per l'attenzione!