Witam!!
Dzisiaj pokarze wam jak można w prosty sposób zrobić kontrole dostępu opartą o matrycową klawiaturę 4x4(szesnastkową).
Zatem nasz kodzik będzie dosyć prosty i zrozumiały, a pewne niejasności postaram się wyjaśnić.
Kod:
// Proste hasło z klawiatury 4x4
#include <Password.h>
#include <Keypad.h>
Password password = Password( "1234" ); // Tutaj wprowadzamy nasze hasło
const byte ROWS = 4; //ilosc wierszy
const byte COLS = 4; //ilosc kolumn
char keys[ROWS][COLS] =
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = { 5, 4, 3, 2 }; //piny mikrokontrolera przypisane do wierszy
byte colPins[COLS] = { 9, 8, 7, 6 }; //piny mikrokontrolera przypisane do kolumn
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
Serial.begin(9600);
keypad.addEventListener(keypadEvent);
}
void loop()
{
keypad.getKey();
}
void keypadEvent(KeypadEvent eKey)
{
switch (keypad.getState())
{
case PRESSED:
Serial.print("Pressed: ");
Serial.println(eKey);
switch (eKey)
{
case '*': checkPassword(); break;
case '#': password.reset(); break;
default: password.append(eKey);
}
}
}
void checkPassword()
{
if (password.evaluate())
{
Serial.println("Success");
//Tu mozna dopisać cos co ma byc wykonane
}
else
{
Serial.println("Wrong");
//Tu takze mozna dopisać, np. wycie syreny:P
}
}
Myślę, że wszystko jest jasne a działanie kodu nie wymaga zilustrowania

Miłej zabawy.