View difference between Paste ID: dS1bHw40 and 5DcLHRu4
SHOW: | | - or go back to the newest paste.
1
2
#include <MFRC522.h> //Inclui a biblioteca MFRC522.h
3-
 
3+
#include <SPI.h>
4
#define resetRFID 13 //Define resetRFID como 13
5
#define cancela 8 //Define cancela como 8
6-
 #define cancela 8 //Define cancela como 8
6+
#define lampada 7 //Define lampada como 7
7-
 #define lampada 7 //Define lampada como 7
7+
8
String tag_CARTAO = "66006C3D4770"; //Cria a variável tag_CARTAO com a ID do Cartão Branco
9-
 
9+
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-
 
15+
16
17
18
    pinMode(resetRFID, OUTPUT); //Configura o pino D13 como saída
19-
 
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-
 
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-
  pinMode(resetRFID, OUTPUT); //Configura o pino D13 como saída
25+
  delay(5); //Aguarda 5 milissegundos
26-
   pinMode(lampada,OUTPUT); //Configura o pino D7 como saída
26+
27-
  
27+
28
29
}
30-
   delay(5); //Aguarda 5 milissegundos
30+
31-
   digitalWrite(resetRFID, HIGH); //Coloca o pino de reset do módulo MFRC522 em nível alto(resetRFID, HIGH);
31+
32-
   delay(5); //Aguarda 5 milissegundos
32+
33
34-
 
34+
35
void loop ()
36
{
37
38-
 
38+
39
40-
 
40+
41
  { 
42
43-
 {
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-
 
45+
    limpa_tag(); //Executa a função para limpar a ID e resetar o módulo MFRC522
46
  }
47
48-
   { 
48+
49
50-
le_tag(); //Executa a função de leitura da TAG
50+
  delay(100); //Aguarda 100 milissegundos
51-
     identifica_tag(); //Identifica ao o que essa ID pertence (Cartão ou Cápsula)
51+
52-
     limpa_tag(); //Executa a função para limpar a ID e resetar o módulo MFRC522
52+
53-
   }
53+
54
}
55-
 
55+
56
57-
delay(100); //Aguarda 100 milissegundos
57+
58
59-
 
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-
 
63+
64
65-
 
65+
  i=0; //Zera a variável para leitura
66
  while(Serial.available() > 0) //Enquanto a Serial receber dados (ID)
67
  {
68-
 {
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-
 
70+
71
  }
72-
i=0; //Zera a variável para leitura
72+
73-
   while(Serial.available() > 0) //Enquanto a Serial receber dados (ID)
73+
74-
   {
74+
75-
     tag_lida[i] = Serial.read(); //Armazena o caractere que entrou na serial na posição da tag_lida
75+
76-
     i++; //Incrementa a variável de contagem
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-
 
80+
81
82
}
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
84+
85-
   Serial.println(); //Pula linha na serial
85+
86
87-
 
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-
 
91+
92
93-
 
93+
94
  delay(5); //Aguarda 5 milissegundos
95
  digitalWrite(resetRFID, HIGH); //Coloca o pino de reset do módulo MFRC522 em nível alto
96-
 {
96+
  delay(5); //Aguarda 5 milissegundos
97
98-
 
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-
   delay(5); //Aguarda 5 milissegundos
101+
102-
   digitalWrite(resetRFID, HIGH); //Coloca o pino de reset do módulo MFRC522 em nível alto
102+
103-
   delay(5); //Aguarda 5 milissegundos
103+
104
}
105-
 
105+
106
107
108
109-
 
109+
110
void identifica_tag() //Função que identifica a TAG
111
{
112
113-
 
113+
114
115-
 
115+
  boolean validar = true; //Cria uma variável booleana para validar a TAG
116
117
118-
 {
118+
119
  //Laço para comparar o ID da tag_lida com o ID da tag_CARTAO
120-
 
120+
  for(i=0 ; i<13 ; i++)
121
  {    
122-
boolean validar = true; //Cria uma variável booleana para validar a TAG
122+
123
    if(tag_lida[i+1] != tag_CARTAO[i]) //Se ID da tag_lida for diferente da ID da tag_cartao
124-
 
124+
    {
125
      validar = false; //Desvalida a tag_CARTAO
126
    }   
127-
   for(i=0 ; i<13 ; i++)
127+
128-
   {    
128+
  }
129
  //===========================================================
130-
  if(tag_lida[i+1] != tag_CARTAO[i]) //Se ID da tag_lida for diferente da ID da tag_cartao
130+
131-
     {
131+
132-
       validar = false; //Desvalida a tag_CARTAO
132+
133-
     }   
133+
134
  {
135
136-
   //===========================================================
136+
137
    if(!(digitalRead(lampada))) //Se a lâmpada estiver desacionada
138-
 
138+
    {
139
      digitalWrite(lampada, HIGH); //Liga a lâmpada
140
141-
   {
141+
      Serial.println("CAPSULA >> Liga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Liga LAMPADA"
142
    }
143
144-
     if(!(digitalRead(lampada))) //Se a lâmpada estiver desacionada
144+
145-
     {
145+
146-
        digitalWrite(lampada, HIGH); //Liga a lâmpada
146+
147-
       
147+
    {
148-
       Serial.println("CAPSULA >> Liga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Liga LAMPADA"
148+
      digitalWrite(lampada, LOW); //Desliga a lâmpada
149-
     }
149+
      Serial.println("CAPSULA >> Desliga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Desliga LAMPADA"
150
    }
151-
 
151+
    //========================
152
153
    delay(2000); //Aguarda 2 segundos para efetuar uma nova leitura;
154-
     {
154+
155-
        digitalWrite(lampada, LOW); //Desliga a lâmpada
155+
  }
156-
       Serial.println("CAPSULA >> Desliga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Desliga LAMPADA"
156+
157-
     }
157+
158-
     //========================
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-
 
164+
  for(i=0 ; i<13 ; i++)
165
  {
166-
validar = true; //Valida a variável validar para nova comparação de IDs
166+
167
    if(tag_lida[i+1] != tag_CAPSULA[i]) //Se ID da tag_lida for diferente da ID da tag_CAPSULA
168-
 
168+
    {
169
      validar=false; //Desvalida a tag_CAPSULA
170
    }
171-
   for(i=0 ; i<13 ; i++)
171+
172-
   {
172+
  }
173
  //===========================================================
174-
  if(tag_lida[i+1] != tag_CAPSULA[i]) //Se ID da tag_lida for diferente da ID da tag_CAPSULA
174+
175-
     {
175+
176-
       validar=false; //Desvalida a tag_CAPSULA
176+
177-
     }
177+
  if(validar == true) //Se a tag_CAPSULA nao for desvalidada
178
  {
179
    //Altera estado da Lâmpada
180-
   //===========================================================
180+
    if(!(digitalRead(lampada))) //Se a lâmpada estiver desacionada
181
    {
182-
 
182+
      digitalWrite(lampada, HIGH); //Liga a lâmpada
183
      Serial.println("CAPSULA >> Liga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Liga LAMPADA"
184-
if(validar == true) //Se a tag_CAPSULA nao for desvalidada
184+
    }
185-
   {
185+
186-
     //Altera estado da Lâmpada
186+
    else
187-
     if(!(digitalRead(lampada))) //Se a lâmpada estiver desacionada
187+
    {
188-
     {
188+
      digitalWrite(lampada, LOW); //Desliga a lâmpada
189-
       digitalWrite(lampada, HIGH); //Liga a lâmpada
189+
      Serial.println("CAPSULA >> Desliga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Desliga LAMPADA"
190-
        Serial.println("CAPSULA >> Liga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Liga LAMPADA"
190+
    }
191-
     }
191+
    //============================
192
193-
else
193+
194-
     {
194+
  }
195-
       digitalWrite(lampada, LOW); //Desliga a lâmpada
195+
196-
       Serial.println("CAPSULA >> Desliga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Desliga LAMPADA"
196+
197-
     }
197+
198-
     //============================
198+