Guest User

Untitled

a guest
Aug 18th, 2014
531
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Kódový zámek pomocí posunování znaků v 2D poli znaků:
  2. 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.
  3.  
  4. #include <Keypad.h> //importování knihovny
  5.  
  6. int modra = 12;         //deklarace proměnných
  7. int oranzova = 8;
  8. boolean otevreno = false;
  9. const byte ROWS = 4;  //standartní inicializace klávesnice
  10. const byte COLS = 3;
  11.  
  12. char klavesy[5] = {'0','0','0','0'}; //2D pole stisknutých kláves
  13.  
  14. char heslo[5] = {'1','3','7','9'}; //2D pole hesla
  15.  
  16. char hexaKeys[ROWS][COLS] = {
  17.   {'1','2','3'},
  18.   {'4','5','6'},
  19.   {'7','8','9'},
  20.   {'A','0','B'}
  21. };
  22. byte rowPins[ROWS] = {22,24,26,28};
  23. byte colPins[COLS] = {30,32,34};
  24.  
  25. Keypad klavesnice = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
  26.  
  27. void setup(){
  28.   pinMode(modra, OUTPUT);
  29.   pinMode(oranzova, OUTPUT);
  30.  
  31.   digitalWrite(oranzova, HIGH);
  32. }
  33.  
  34. void loop(){
  35.   char zmacknutyznak = klavesnice.getKey();
  36.  
  37.   if (zmacknutyznak ){
  38.     if (zmacknutyznak  == 'A')
  39.     {
  40.       if ((klavesy[0] == heslo[0]) && (klavesy[1] == heslo[1]) && (klavesy[2] == heslo[2]) && (klavesy[3] == heslo[3]))
  41.     //pokud souhlasí heslo
  42.         {
  43.          if ( otevreno == false )
  44.         {
  45.           digitalWrite(oranzova, LOW);
  46.           digitalWrite(modra, HIGH);
  47.           tone(53,2400,500);
  48.           klavesy[0] = '0'; //vynulování vstupu
  49.           klavesy[1] = '0';
  50.           klavesy[2] = '0';
  51.           klavesy[3] = '0';
  52.         }
  53.         }
  54.     else tone(53,500,1000);    
  55.     }
  56.    
  57.      else
  58.     {
  59.    
  60.     klavesy[0] = klavesy[1]; //posouvání kláves
  61.     klavesy[1] = klavesy[2];
  62.     klavesy[2] = klavesy[3];
  63.     klavesy[3] = zmacknutyznak;  
  64.  
  65.     tone(53,1200,80);
  66.     }
  67. }
  68. }
RAW Paste Data