Advertisement
Rodrigo_Moraes

acesso_teclado

Oct 1st, 2018
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.89 KB | None | 0 0
  1. /*
  2. Criado por: Rodrigo Martins Moraes, e-mail: rodrigo159951@gmail.com
  3. gtcursos.com
  4. */
  5.  
  6. #define LG 2
  7. #define LR 12
  8.  
  9. String senha;
  10. int caracteres = 0;
  11. int tempo = 0;
  12.  
  13. void setup()
  14. {
  15.     //Pinos ligados aos pinos 1, 2, 3 e 4 do teclado - Linhas
  16.     pinMode(3, 1);
  17.     pinMode(4, 1);
  18.     pinMode(5, 1);
  19.     pinMode(6, 1);
  20.  
  21.     //Pinos ligados aos pinos 5, 6, 7 e 8 do teclado - Colunas
  22.     pinMode(8, 0);
  23.     pinMode(9, 0);
  24.     pinMode(10, 0);
  25.     pinMode(11, 0);
  26.  
  27.     //LED Vermelho
  28.     pinMode(LR, 1);
  29.  
  30.     //LED Verde
  31.     pinMode(LG, 1);
  32.  
  33.  
  34.     Serial.begin(115200);
  35.     Serial.println("Aguardando acionamento das teclas...");
  36.     Serial.println();
  37. }
  38.  
  39. void loop()
  40. {
  41.     //Serial.println(tempo);
  42.     if (caracteres > 0) {
  43.         tempo++;
  44.         if (tempo > 1000) {
  45.             Serial.println("Tempo esgotado, apagando senha digitada...");
  46.             senha = "";
  47.             caracteres = 0;
  48.             tempo = 0;
  49.             digitalWrite(LR, 1);
  50.             digitalWrite(LG, 1);
  51.             delay(300);
  52.             digitalWrite(LR, 0);
  53.             digitalWrite(LG, 0);
  54.             delay(300);
  55.             digitalWrite(LR, 1);
  56.             digitalWrite(LG, 1);
  57.             delay(300);
  58.             digitalWrite(LR, 0);
  59.             digitalWrite(LG, 0);
  60.             delay(300);
  61.             digitalWrite(LR, 1);
  62.             digitalWrite(LG, 1);
  63.             delay(300);
  64.             digitalWrite(LR, 0);
  65.             digitalWrite(LG, 0);
  66.             delay(300);
  67.             Serial.println(senha);
  68.         }
  69.     }
  70.     digitalWrite(LR, 1);
  71.     digitalWrite(LG, 0);
  72.     for (int ti = 3; ti < 7; ti++)
  73.     {
  74.         //Alterna o estado dos pinos das linhas
  75.         digitalWrite(3, 0);
  76.         digitalWrite(4, 0);
  77.         digitalWrite(5, 0);
  78.         digitalWrite(6, 0);
  79.         digitalWrite(ti, 1);
  80.         //Verifica se alguma tecla da coluna 1 foi pressionada
  81.         if (digitalRead(8) == 1)
  82.         {
  83.             imprime_linha_coluna(ti - 2, 1);
  84.             while (digitalRead(8) == 1) {}
  85.         }
  86.  
  87.         //Verifica se alguma tecla da coluna 2 foi pressionada    
  88.         if (digitalRead(9) == 1)
  89.         {
  90.             imprime_linha_coluna(ti - 2, 2);
  91.             while (digitalRead(9) == 1) {};
  92.         }
  93.  
  94.         //Verifica se alguma tecla da coluna 3 foi pressionada
  95.         if (digitalRead(10) == 1)
  96.         {
  97.             imprime_linha_coluna(ti - 2, 3);
  98.             while (digitalRead(10) == 1) {}
  99.         }
  100.  
  101.         //Verifica se alguma tecla da coluna 4 foi pressionada
  102.         if (digitalRead(11) == 1)
  103.         {
  104.             imprime_linha_coluna(ti - 2, 4);
  105.             while (digitalRead(11) == 1) {}
  106.         }
  107.     }
  108.     delay(10);
  109. }
  110.  
  111. void imprime_linha_coluna(int x, int y)
  112. {
  113.     tempo = 0;
  114.     Serial.print("Linha : ");
  115.     Serial.print(x);
  116.     Serial.print(" x Coluna : ");
  117.     Serial.print(y);
  118.     delay(10);
  119.     Serial.println();
  120.     if (x == 1) {
  121.         if (y == 1) {
  122.             senha = senha + '1';
  123.         }
  124.         else if (y == 2) {
  125.             senha = senha + '2';
  126.         }
  127.         else if (y == 3) {
  128.             senha = senha + '3';
  129.         }
  130.         else if (y == 4) {
  131.             senha = senha + 'A';
  132.         }
  133.     }
  134.     else if (x == 2) {
  135.         if (y == 1) {
  136.             senha = senha + '4';
  137.         }
  138.         else if (y == 2) {
  139.             senha = senha + '5';
  140.         }
  141.         else if (y == 3) {
  142.             senha = senha + '6';
  143.         }
  144.         else if (y == 4) {
  145.             senha = senha + 'B';
  146.         }
  147.     }
  148.     else if (x == 3) {
  149.         if (y == 1) {
  150.             senha = senha + '7';
  151.         }
  152.         else if (y == 2) {
  153.             senha = senha + '8';
  154.         }
  155.         else if (y == 3) {
  156.             senha = senha + '9';
  157.         }
  158.         else if (y == 4) {
  159.             senha = senha + 'C';
  160.         }
  161.     }
  162.     else if (x == 4) {
  163.         if (y == 1) {
  164.             senha = senha + 'X';
  165.         }
  166.         else if (y == 2) {
  167.             senha = senha + '0';
  168.         }
  169.         else if (y == 3) {
  170.             senha = senha + 'H';
  171.         }
  172.         else if (y == 4) {
  173.             senha = senha + 'D';
  174.         }
  175.     }
  176.     Serial.println(senha);
  177.     caracteres++;
  178.     if (caracteres == 4) {
  179.         digitalWrite(LR, 1);
  180.         digitalWrite(LG, 1);
  181.         delay(300);
  182.         digitalWrite(LR, 0);
  183.         digitalWrite(LG, 0);
  184.         delay(300);
  185.         digitalWrite(LR, 1);
  186.         digitalWrite(LG, 1);
  187.         delay(300);
  188.         digitalWrite(LR, 0);
  189.         digitalWrite(LG, 0);
  190.         delay(300);
  191.         digitalWrite(LR, 1);
  192.         digitalWrite(LG, 1);
  193.         delay(300);
  194.         digitalWrite(LR, 0);
  195.         digitalWrite(LG, 0);
  196.         delay(300);
  197.         verifica_senha();
  198.     }
  199.     return;
  200. }
  201.  
  202. void verifica_senha() {
  203.     if (senha == "5A2B") {
  204.         digitalWrite(LR, 0);
  205.         digitalWrite(LG, 1);
  206.         delay(2000);
  207.     }
  208.     caracteres = 0;
  209.     senha = "";
  210.     return;
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement