/* Il led si accende dopo aver premuto i tasti 5 - 7 - 3- A nella giusta sequenza Il tasto C resetta le variabili. KEYPAD R0 R1 R2 R3 C0 C1 C2 C3 ARDUINO 8 7 6 5 12 11 10 9 */ #include <Keypad.h> # define LED1 3 const byte RIGHE = 4; const byte COLONNE = 4; int valore1 = 0; int valore2 = 0; int valore3 = 0; int valoreA = 0; int valoreC = 0; int Combi1 = 5; int Combi2 = 7; int Combi3 = 3; int CombiA = 1; int CombiC = 1; char Tasti[RIGHE][COLONNE] = {{'1','2','3','C'}, {'4','5','6','D'}, {'7','8','9','E'}, {'A','0','B','F'}}; byte righe[RIGHE] = {8, 7, 6, 5}; byte colonne[COLONNE] = {12, 11, 10, 9}; // Creazione della tastiera Keypad cKeypad = Keypad( makeKeymap(Tasti), righe, colonne, RIGHE, COLONNE); void setup() { pinMode (LED1, OUTPUT); Serial.begin(9600); } void loop(){ char Key = cKeypad.getKey(); if (Key) {Serial.println(Key);} if (Key) // per i numeri dopo il case vedi tavola ASCII { switch (Key) { case 53: valore1 = (Combi1 + 1); break; case 55: valore2 = (Combi2 + 1); valore1 = (valore1 - 1); break; case 51: valore3 = (Combi3+1); valore2 = (valore2 - 1); break; case 65: valoreA = CombiA; valore3 =(valore3 - 1); break; // Se si preme il tasto C si azzera tutto. case 67: valoreC = CombiC; break; // Se si premono le altre cifre si azzera tutto. case 48: valoreC = CombiC; break; case 49: valoreC = CombiC; break; case 50: valoreC = CombiC; break; case 52: valoreC = CombiC; break; case 54: valoreC = CombiC; break; case 56: valoreC = CombiC; break; case 57: valoreC = CombiC; break; case 66: valoreC = CombiC; break; case 68: valoreC = CombiC; break; case 69: valoreC = CombiC; break; case 70: valoreC = CombiC; break; }} if (valoreC == CombiC ) { valore1 = 0; valore2 = 0; valore3= 0; valoreA =0; valoreC= 0; digitalWrite(LED1,LOW);} if (valore1 == Combi1 && valore2 == Combi2 && valore3 == Combi3 && valoreA == CombiA ) { digitalWrite(LED1,HIGH); } }
Struttura:
La pressione del tasto corretto incrementa la variabile di 1.(variabile1 = Combi1 +1 )
La corretta pressione del tasto successivo decrementa la variabile precedente.
non funziona come se mancasse qualche istruzione
RispondiEliminaPurtroppo ho perso lo sketch originale. L'errore è da ricercarsi nel "copia Incolla". Ho perso anche il diagramma di flusso che avrebbe molto aiutato.
EliminaFunziona. Non avevo messo nella giusta sequenza i pin della tastiera.
RispondiElimina