Guest User

Untitled

a guest
Aug 18th, 2014
624
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

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×