Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.39 KB | None | 0 0
  1. #include <SPI.h>
  2. #include <MFRC522.h>
  3.  
  4. //Pinos
  5. #define LED_VERDE 6
  6. #define LED_VERMELHO 7
  7. #define BUZZER 8
  8. #define SS_PIN 10
  9. #define RST_PIN 9
  10.  
  11. String IDtag = ""; //Variável que armazenará o ID da Tag
  12. bool Permitido = false; //Variável que verifica a permissão
  13.  
  14. //Vetor responsável por armazenar os ID's das Tag's cadastradas
  15. String TagsCadastradas[] = {"669b5d5e",
  16. "ID_2",
  17. "ID_3"};
  18.  
  19. MFRC522 LeitorRFID(SS_PIN, RST_PIN); // Cria uma nova instância para o
  20. leitor e passa os pinos como parâmetro
  21.  
  22.  
  23. void setup() {
  24. Serial.begin(9600); // Inicializa a comunicação Serial
  25. SPI.begin(); // Inicializa comunicacao SPI
  26. LeitorRFID.PCD_Init(); // Inicializa o leitor RFID
  27. pinMode(LED_VERDE, OUTPUT); // Declara o pino do led verde como
  28. saída
  29. pinMode(LED_VERMELHO, OUTPUT); // Declara o pino do led vermelho como
  30. saída
  31. pinMode(BUZZER, OUTPUT); // Declara o pino do buzzer como saída
  32. }
  33.  
  34. void loop() {
  35. Leitura(); //Chama a função responsável por fazer a leitura das Tag's
  36. }
  37.  
  38. void Leitura(){
  39.  
  40. IDtag = ""; //Inicialmente IDtag deve estar vazia.
  41.  
  42. // Verifica se existe uma Tag presente
  43. if ( !LeitorRFID.PICC_IsNewCardPresent() ||
  44. !LeitorRFID.PICC_ReadCardSerial() ) {
  45. delay(50);
  46. return;
  47. }
  48.  
  49. // Pega o ID da Tag através da função LeitorRFID.uid e Armazena o ID na
  50. variável IDtag
  51. for (byte i = 0; i < LeitorRFID.uid.size; i++) {
  52. IDtag.concat(String(LeitorRFID.uid.uidByte[i], HEX));
  53. }
  54.  
  55. //Compara o valor do ID lido com os IDs armazenados no vetor
  56. TagsCadastradas[]
  57. for (int i = 0; i < (sizeof(TagsCadastradas)/sizeof(String)); i++) {
  58. if( IDtag.equalsIgnoreCase(TagsCadastradas[i]) ){
  59. Permitido = true; //Variável Permitido assume valor verdadeiro
  60. caso o ID Lido esteja cadastrado
  61. }
  62. }
  63.  
  64. if(Permitido == true) acessoLiberado(); //Se a variável Permitido for
  65. verdadeira será chamada a função acessoLiberado()
  66. else acessoNegado(); //Se não será chamada a função acessoNegado()
  67.  
  68. delay(0001); //aguarda 2 segundos para efetuar uma nova leitura
  69. }
  70.  
  71. void acessoLiberado(){
  72. Serial.println("Tag Cadastrada: " + IDtag); //Exibe a mensagem "Tag
  73. Cadastrada" e o ID da tag não cadastrada
  74. efeitoPermitido(); //Chama a função efeitoPermitido()
  75. Permitido = false; //Seta a variável Permitido como false novamente
  76. }
  77.  
  78. void acessoNegado(){
  79. Serial.println("Tag NAO Cadastrada: " + IDtag); //Exibe a mensagem "Tag
  80. NAO Cadastrada" e o ID da tag cadastrada
  81. efeitoNegado(); //Chama a função efeitoNegado()
  82. }
  83.  
  84. void efeitoPermitido(){
  85. int qtd_bips = 2; //definindo a quantidade de bips
  86. for(int j=0; j<qtd_bips; j++){
  87. //Ligando o buzzer com uma frequência de 1500 hz e ligando o led verde.
  88. tone(BUZZER,1500);
  89. digitalWrite(LED_VERDE, HIGH);
  90. delay(100);
  91.  
  92. //Desligando o buzzer e led verde.
  93. noTone(BUZZER);
  94. digitalWrite(LED_VERDE, LOW);
  95. delay(100);
  96. }
  97. }
  98.  
  99. void efeitoNegado(){
  100. int qtd_bips = 1; //definindo a quantidade de bips
  101. for(int j=0; j<qtd_bips; j++){
  102. //Ligando o buzzer com uma frequência de 500 hz e ligando o led vermelho.
  103. tone(BUZZER,500);
  104. digitalWrite(LED_VERMELHO, HIGH);
  105. delay(500);
  106.  
  107. //Desligando o buzzer e o led vermelho.
  108. noTone(BUZZER);
  109. digitalWrite(LED_VERMELHO, LOW);
  110. delay(500);
  111. }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement