Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Kódový zámek pomocí posunování znaků v 2D poli znaků:
- funguje na principu, že když se zadá znak, tak se vloží do na začátek 2D pole a ostatní znaky se posunou, také se kontroluje, jestli znaky a jejich pořadí v poli nesouhlasí s kódem. Nevýhodou toho řešení je, že se jednak musí posouvat znaky, ale v případě, že se rozhodneme změnit délku hesla, musíme měnit spoustu dalších řádků v kódu.
- #include <Keypad.h> //importování knihovny
- int modra = 12; //deklarace proměnných
- int oranzova = 8;
- boolean otevreno = false;
- const byte ROWS = 4; //standartní inicializace klávesnice
- const byte COLS = 3;
- char klavesy[5] = {'0','0','0','0'}; //2D pole stisknutých kláves
- char heslo[5] = {'1','3','7','9'}; //2D pole hesla
- char hexaKeys[ROWS][COLS] = {
- {'1','2','3'},
- {'4','5','6'},
- {'7','8','9'},
- {'A','0','B'}
- };
- byte rowPins[ROWS] = {22,24,26,28};
- byte colPins[COLS] = {30,32,34};
- Keypad klavesnice = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
- void setup(){
- pinMode(modra, OUTPUT);
- pinMode(oranzova, OUTPUT);
- digitalWrite(oranzova, HIGH);
- }
- void loop(){
- char zmacknutyznak = klavesnice.getKey();
- if (zmacknutyznak ){
- if (zmacknutyznak == 'A')
- {
- if ((klavesy[0] == heslo[0]) && (klavesy[1] == heslo[1]) && (klavesy[2] == heslo[2]) && (klavesy[3] == heslo[3]))
- //pokud souhlasí heslo
- {
- if ( otevreno == false )
- {
- digitalWrite(oranzova, LOW);
- digitalWrite(modra, HIGH);
- tone(53,2400,500);
- klavesy[0] = '0'; //vynulování vstupu
- klavesy[1] = '0';
- klavesy[2] = '0';
- klavesy[3] = '0';
- }
- }
- else tone(53,500,1000);
- }
- else
- {
- klavesy[0] = klavesy[1]; //posouvání kláves
- klavesy[1] = klavesy[2];
- klavesy[2] = klavesy[3];
- klavesy[3] = zmacknutyznak;
- tone(53,1200,80);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement