Advertisement
Guest User

Untitled

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