Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <MFRC522.h> //Inclui a biblioteca MFRC522.h
- #define resetRFID 13 //Define resetRFID como 13
- #define cancela 8 //Define cancela como 8
- #define lampada 7 //Define lampada como 7
- String tag_lida = "0000000000000"; //Cria a variável tag_lida e "limpa" as posições da ID
- String tag_CARTAO = "66006C3D4770"; //Cria a variável tag_CARTAO com a ID do Cartão Branco
- String tag_CAPSULA = "0041DEF32E42"; //Cria a variável tag_CAPSULA com a ID da Cápsula
- int i; //Variável para contagem
- Serial.begin(9600); //Inicia a serial com um baud rate de 9600
- pinMode(resetRFID, OUTPUT); //Configura o pino D13 como saída
- pinMode(lampada,OUTPUT); //Configura o pino D7 como saída
- digitalWrite(resetRFID, LOW); //Coloca o pino de reset do módulo MFRC522 em nível baixo(resetRFID, LOW);
- delay(5); //Aguarda 5 milissegundos
- digitalWrite(resetRFID, HIGH); //Coloca o pino de reset do módulo MFRC522 em nível alto(resetRFID, HIGH);
- delay(5); //Aguarda 5 milissegundos
- }
- void loop ()
- {
- if(Serial.available() > 0) //Se a serial receber dados (ID)
- {
- le_tag(); //Executa a função de leitura da TAG
- identifica_tag(); //Identifica ao o que essa ID pertence (Cartão ou Cápsula)
- limpa_tag(); //Executa a função para limpar a ID e resetar o módulo MFRC522
- }
- delay(100); //Aguarda 100 milissegundos
- }
- void le_tag() //Função que lê a TAG e armazena a ID da TAG na variável tag_lida
- {
- i=0; //Zera a variável para leitura
- while(Serial.available() > 0) //Enquanto a Serial receber dados (ID)
- {
- tag_lida[i] = Serial.read(); //Armazena o caractere que entrou na serial na posição da tag_lida
- i++; //Incrementa a variável de contagem
- }
- Serial.print("\n\nTAG Lida:"); //Pula 2 linhas e imprime na serial a frase "TAG Lida:"
- for(i=0;i<13;i++) Serial.print(tag_lida[i]); //Pega cada posição da ID e imprime a mesma na serial
- Serial.println(); //Pula linha na serial
- }
- void limpa_tag() //Função que limpa a variável tag_lida e reseta o módulo MFRC522 para nova leitura
- {
- digitalWrite(resetRFID, LOW); //Coloca o pino de reset do módulo MFRC522 em nível baixo
- delay(5); //Aguarda 5 milissegundos
- digitalWrite(resetRFID, HIGH); //Coloca o pino de reset do módulo MFRC522 em nível alto
- delay(5); //Aguarda 5 milissegundos
- for(i=0;i<13;i++) tag_lida[i] = '0'; //Laço para limpar todas as posições da variável tag_lida
- }
- void identifica_tag() //Função que identifica a TAG
- {
- boolean validar = true; //Cria uma variável booleana para validar a TAG
- //Laço para comparar o ID da tag_lida com o ID da tag_CARTAO
- for(i=0 ; i<13 ; i++)
- {
- if(tag_lida[i+1] != tag_CARTAO[i]) //Se ID da tag_lida for diferente da ID da tag_cartao
- {
- validar = false; //Desvalida a tag_CARTAO
- }
- }
- //===========================================================
- if(validar == true)//Se a tag_CARTAO nao for desvalidada
- {
- //Altera estado da Cancela
- if(!(digitalRead(lampada))) //Se a lâmpada estiver desacionada
- {
- digitalWrite(lampada, HIGH); //Liga a lâmpada
- Serial.println("CAPSULA >> Liga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Liga LAMPADA"
- }
- else
- {
- digitalWrite(lampada, LOW); //Desliga a lâmpada
- Serial.println("CAPSULA >> Desliga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Desliga LAMPADA"
- }
- //========================
- delay(2000); //Aguarda 2 segundos para efetuar uma nova leitura;
- }
- validar = true; //Valida a variável validar para nova comparação de IDs
- //Laço para comparar o ID da tag_lida com o ID da tag_CAPSULA
- for(i=0 ; i<13 ; i++)
- {
- if(tag_lida[i+1] != tag_CAPSULA[i]) //Se ID da tag_lida for diferente da ID da tag_CAPSULA
- {
- validar=false; //Desvalida a tag_CAPSULA
- }
- }
- //===========================================================
- if(validar == true) //Se a tag_CAPSULA nao for desvalidada
- {
- //Altera estado da Lâmpada
- if(!(digitalRead(lampada))) //Se a lâmpada estiver desacionada
- {
- digitalWrite(lampada, HIGH); //Liga a lâmpada
- Serial.println("CAPSULA >> Liga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Liga LAMPADA"
- }
- else
- {
- digitalWrite(lampada, LOW); //Desliga a lâmpada
- Serial.println("CAPSULA >> Desliga LAMPADA"); //Imprime na serial a frase "CAPSULA >> Desliga LAMPADA"
- }
- //============================
- delay(2000); //Aguarda 2 segundos para efetuar uma nova leitura;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement