Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2015
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #include <MFRC522.h> //Inclui a biblioteca MFRC522.h
  3. #include <SPI.h>
  4. #define resetRFID 13 //Define resetRFID como 13
  5. #define cancela 8 //Define cancela como 8
  6. #define lampada 7 //Define lampada como 7
  7. String tag_lida = "0000000000000"; //Cria a variável tag_lida e "limpa" as posições da ID
  8. String tag_CARTAO = "66006C3D4770"; //Cria a variável tag_CARTAO com a ID do Cartão Branco
  9. String tag_CAPSULA = "0041DEF32E42"; //Cria a variável tag_CAPSULA com a ID da Cápsula
  10. int i; //Variável para contagem
  11.  
  12. void setup(){
  13.  
  14. Serial.begin(9600); //Inicia a serial com um baud rate de 9600
  15.  
  16.  
  17.  
  18. pinMode(resetRFID, OUTPUT); //Configura o pino D13 como saída
  19. pinMode(lampada,OUTPUT); //Configura o pino D7 como saída
  20.  
  21.  
  22. digitalWrite(resetRFID, LOW); //Coloca o pino de reset do módulo MFRC522 em nível baixo(resetRFID, LOW);
  23. delay(5); //Aguarda 5 milissegundos
  24. digitalWrite(resetRFID, HIGH); //Coloca o pino de reset do módulo MFRC522 em nível alto(resetRFID, HIGH);
  25. delay(5); //Aguarda 5 milissegundos
  26.  
  27.  
  28.  
  29. }
  30.  
  31.  
  32.  
  33.  
  34.  
  35. void loop ()
  36. {
  37.  
  38.  
  39.  
  40. if(Serial.available() > 0) //Se a serial receber dados (ID)
  41. {
  42.  
  43. le_tag(); //Executa a função de leitura da TAG
  44. identifica_tag(); //Identifica ao o que essa ID pertence (Cartão ou Cápsula)
  45. limpa_tag(); //Executa a função para limpar a ID e resetar o módulo MFRC522
  46. }
  47.  
  48.  
  49.  
  50. delay(100); //Aguarda 100 milissegundos
  51.  
  52.  
  53.  
  54. }
  55.  
  56.  
  57.  
  58.  
  59.  
  60. void le_tag() //Função que lê a TAG e armazena a ID da TAG na variável tag_lida
  61. {
  62.  
  63.  
  64.  
  65. i=0; //Zera a variável para leitura
  66. while(Serial.available() > 0) //Enquanto a Serial receber dados (ID)
  67. {
  68. tag_lida[i] = Serial.read(); //Armazena o caractere que entrou na serial na posição da tag_lida
  69. i++; //Incrementa a variável de contagem
  70.  
  71. }
  72.  
  73.  
  74.  
  75. Serial.print("\n\nTAG Lida:"); //Pula 2 linhas e imprime na serial a frase "TAG Lida:"
  76.  
  77. for(i=0;i<13;i++) Serial.print(tag_lida[i]); //Pega cada posição da ID e imprime a mesma na serial
  78. Serial.println(); //Pula linha na serial
  79.  
  80.  
  81.  
  82. }
  83.  
  84.  
  85.  
  86.  
  87.  
  88. void limpa_tag() //Função que limpa a variável tag_lida e reseta o módulo MFRC522 para nova leitura
  89. {
  90.  
  91.  
  92.  
  93. digitalWrite(resetRFID, LOW); //Coloca o pino de reset do módulo MFRC522 em nível baixo
  94. delay(5); //Aguarda 5 milissegundos
  95. digitalWrite(resetRFID, HIGH); //Coloca o pino de reset do módulo MFRC522 em nível alto
  96. delay(5); //Aguarda 5 milissegundos
  97.  
  98.  
  99.  
  100. for(i=0;i<13;i++) tag_lida[i] = '0'; //Laço para limpar todas as posições da variável tag_lida
  101.  
  102.  
  103.  
  104. }
  105.  
  106.  
  107.  
  108.  
  109.  
  110. void identifica_tag() //Função que identifica a TAG
  111. {
  112.  
  113.  
  114.  
  115. boolean validar = true; //Cria uma variável booleana para validar a TAG
  116.  
  117.  
  118.  
  119. //Laço para comparar o ID da tag_lida com o ID da tag_CARTAO
  120. for(i=0 ; i<13 ; i++)
  121. {
  122.  
  123. if(tag_lida[i+1] != tag_CARTAO[i]) //Se ID da tag_lida for diferente da ID da tag_cartao
  124. {
  125. validar = false; //Desvalida a tag_CARTAO
  126. }
  127.  
  128. }
  129. //===========================================================
  130.  
  131.  
  132.  
  133. if(validar == true)//Se a tag_CARTAO nao for desvalidada
  134. {
  135.  
  136. //Altera estado da Cancela
  137. if(!(digitalRead(lampada))) //Se a lâmpada estiver desacionada
  138. {
  139. digitalWrite(lampada, HIGH); //Liga a lâmpada
  140.  
  141. Serial.println("CAPSULA >> Liga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Liga LAMPADA"
  142. }
  143.  
  144.  
  145.  
  146. else
  147. {
  148. digitalWrite(lampada, LOW); //Desliga a lâmpada
  149. Serial.println("CAPSULA >> Desliga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Desliga LAMPADA"
  150. }
  151. //========================
  152.  
  153. delay(2000); //Aguarda 2 segundos para efetuar uma nova leitura;
  154.  
  155. }
  156.  
  157.  
  158.  
  159. validar = true; //Valida a variável validar para nova comparação de IDs
  160.  
  161.  
  162.  
  163. //Laço para comparar o ID da tag_lida com o ID da tag_CAPSULA
  164. for(i=0 ; i<13 ; i++)
  165. {
  166.  
  167. if(tag_lida[i+1] != tag_CAPSULA[i]) //Se ID da tag_lida for diferente da ID da tag_CAPSULA
  168. {
  169. validar=false; //Desvalida a tag_CAPSULA
  170. }
  171.  
  172. }
  173. //===========================================================
  174.  
  175.  
  176.  
  177. if(validar == true) //Se a tag_CAPSULA nao for desvalidada
  178. {
  179. //Altera estado da Lâmpada
  180. if(!(digitalRead(lampada))) //Se a lâmpada estiver desacionada
  181. {
  182. digitalWrite(lampada, HIGH); //Liga a lâmpada
  183. Serial.println("CAPSULA >> Liga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Liga LAMPADA"
  184. }
  185.  
  186. else
  187. {
  188. digitalWrite(lampada, LOW); //Desliga a lâmpada
  189. Serial.println("CAPSULA >> Desliga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Desliga LAMPADA"
  190. }
  191. //============================
  192.  
  193. delay(2000); //Aguarda 2 segundos para efetuar uma nova leitura;
  194. }
  195.  
  196.  
  197.  
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement