Boa tarde,

sou estudante de técnico em eletrotécnica e estou no último módulo, portanto preciso desenvolver um TCC para obter meu diploma. Meu TCC será sobre Automação Residencial e terá uma maquete automatizada, controlada pelo arduino e um módulo bluetooth.

Um dos componentes que usarei no meu projeto é o módulo RFID. 

Possuo o Arduino Mega desde o começo do ano, e desde então ele vem funcionando perfeitamente.

Algumas semanas atrás adquiri um módulo RFID RC522A e esses dias quando fui testa-lo, fica vários minutos carregando o sketch para o Arduino e depois aparece timeout, eu entao diz que a COM6 já está sendo usada e não carrega.

Já tentei vários códigos para ver se era problema com o arduino, mas outros códigos ele carrega normalmente. Reparei que toda vez que uso um código com a biblioteca MFRC522 ele apresenta problemas.

Tentei desinstalar a biblioteca e instalar novamente, mas após isso o arduino nao "reconhece" mais essa bibloteca, pois não aparece a cor laranja quando se faz o include dela.

Gostaria de saber se pode ser algum problema na biblioteca, no arduino, ou então no código. 

Já tentei outras versões da IDE do Arduino mas ocorre a mesma coisa.

Segue o código que estou tentando carregar:

// Programa : RFID - Controle de acesso / cancela
// Autor : Arduino e Cia

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>

Servo microservo9g;

#define SS_PIN 10
#define RST_PIN 9
// Definicoes pino modulo RC522
MFRC522 mfrc522(SS_PIN, RST_PIN);

// Leds indicadores acesso liberado ou negado
int led_liberado = 5;
int led_negado = 6;

char st[20];

void setup()
{
pinMode(led_liberado, OUTPUT);
pinMode(led_negado, OUTPUT);
// Define que o servo esta ligado a porta digital 3
microservo9g.attach(3);
// Move o servo para a posicao inicial (cancela fechada)
microservo9g.write(90);
// Inicia a serial
Serial.begin(9600);
// Inicia SPI bus
SPI.begin();
// Inicia MFRC522
mfrc522.PCD_Init();
// Mensagens iniciais no serial monitor
Serial.println("Aproxime o seu cartao do leitor...");
Serial.println();
}

void loop()
{
// Aguarda a aproximacao do cartao
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Seleciona um dos cartoes
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
// Mostra UID na serial
Serial.print("UID da tag :");
String conteudo= "";
byte letra;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Mensagem : ");
conteudo.toUpperCase();

// Testa se o cartao1 foi lido
if (conteudo.substring(1) == "D8 4B 12 22")
{
// Levanta a cancela e acende o led verde
microservo9g.write(-90);
digitalWrite(led_liberado, HIGH);
Serial.println("Cartao1 - Acesso liberado !");
Serial.println();
delay(3000);
microservo9g.write(90);
digitalWrite(led_liberado, LOW);
}

// Testa se o cartao2 foi lido
if (conteudo.substring(1) == "87 4B DC 8A")
{
Serial.println("Cartao2 - Acesso negado !!!");
Serial.println();
// Pisca o led vermelho
for (int i= 1; i<5 ; i++)
{
digitalWrite(led_negado, HIGH);
delay(200);
digitalWrite(led_negado, LOW);
delay(200);
}
}
delay(1000);
}

Se alguem tiver alguma sugestão, ajudaria muito, qualquer tipo de ajuda.

Agradeço desde já.

P.S.:

Link da biblioteca utilizada: https://github.com/miguelbalboa/rfid

Exibições: 2299

Responder esta

Respostas a este tópico

Olá,

Eu não tenho este módulo porém, dando uma olhada no seu código percebi que tem 2 "return;".

Que eu saiba, não pode haver este comando para sair do loop().

Experimenta corrigir. Pode ser que seu problema se resolva.

Boa sorte,

  'Eiju

Copiei seu code e carreguei nos meus UNO MEGA e NANO, sem problemas, mude de biblioteca.

Se quiser mande seu gmail que compartilho a que estou usando.

Abs.

Agradeceria muito se você me enviasse 

email: victorspulze07@gmail.com

Olá Victor,

Enviei pelo Google Drive e vou subir o anexo aqui também, mas como as vezes da problema por isso enviei no GD. Favor avise se teve sucesso.

Boa sorte.

Abs,

Anexos

Obrigado Carlos, 

Recebi certinho a biblioteca que me enviou, eu a instalei mas o erro persiste.

Segue a copia do que aparece na IDE: 

O sketch usa 10.236 bytes (4%) de espaço de armazenamento para programas. O máximo são 253.952 bytes.
Variáveis globais usam 525 bytes (6%) de memória dinâmica, deixando 7.667 bytes para variáveis locais. O máximo são 8.192 bytes.
avrdude: ser_open(): can't open device "\\.\COM7": Acesso negado.

avrdude: ser_drain(): read error: Identificador inválido.

Problema ao carregar para a placa. Veja http://www.arduino.cc/en/Guide/Troubleshooting#upload para sugestões.

 De nada Victor,

Via de duvidas, segue vídeo que subi no meu canal do YT para sua comprovação

https://www.youtube.com/watch?v=rA4R1GLu3X0&feature=youtu.be

A distancia é complicado opinar, seria mais dar palpite que outra coisa, vamos aguardar alguma sugestão de alguém que tenha passado por algo similar.

Se outros códigos carregam normalmente na mesma placa, podemos descartar cabo, conector, ou problemas de hardware qualquer, sem duvida o problema tem a ver com a biblioteca, mas o que é... esta complicado saber, vou continuar pesquisando boa sorte por ai!

Abs.

eu tava como o mesmo problema .... o problema e que o "miso, mosi ss"() do Arduíno mega estão em outra pinagem

vc deve mudar os para

 SS SDA  53 
 MOSI      51 
 MISO      50 
 SCK       52

e altera a linha do codigo de

#define SS_PIN 10
#define RST_PIN 9

para

#define SS_PIN 53
#define RST_PIN 5

duvida ver a biblioteca original 

Boa João!

Tomara ele possa resolver e seja isso mesmo!

Abs.

certeza que é isso ... esse tutoriais só ensina com o Arduíno uno  é quem tem o leonardo ou mega tem que pesquisar pra resolver o problema 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço