Go Down

Topic: [Risolto] Utilizzo del modulo 125Khz RFID - UART (Read 523 times) previous topic - next topic

Laendor

Jul 18, 2013, 09:08 am Last Edit: Jul 24, 2013, 02:03 am by Laendor Reason: 1
Buondì,

Sono un neofita del mondo Arduino e i problemi si presentano fin dall'inizio!
Possiedo una scheda arduino UNO r3 e tutti gli impicci relativi dei più classici starter-kit in vendita (jumper, reistenze, etc.).
Siccome vorrei realizzare un simpatico progetto da portare per l'Esame di Automatica, allora ho anche acquistato l'RFID-UART, con relatice Schede e Tag.
Voglio provare le potenzialità di questo aggeggio, quindi voglio testare una cosa semplice-semplice!

I collegamenti sono i seguenti:
Pin 1 dell'RFID a TX di Arduino
Pin 2 dell'RFID a niente
Pin 3 dell'RFID a niente
Pin 4 dell'RFID a GND di Arduino
Pin 5 dell'RFID a +5 V di Arduino

Questo è il codice
Code: [Select]
#include <SoftwareSerial.h>

#define ADD_TAG_CODE "210014DFE309"  
#define DEL_TAG_CODE "210014E2BD6A"  

SoftwareSerial rfid = SoftwareSerial(5, 6);
String msg;
String ID ;  //string to store allowed cards

void setup()  
{
 Serial.begin(9600);
 Serial.println("Serial Ready");

 rfid.begin(9600);
 Serial.println("RFID Ready");
}

char c;

void loop(){
 
 while(rfid.available()>0){
   c=rfid.read();
   msg += c;
   Serial.println(msg);  
   Serial.println(msg.length());
 }
 msg=msg.substring(1,13);
 if(msg.indexOf(ADD_TAG_CODE)>=0) add();
 else if(msg.indexOf(DEL_TAG_CODE)>=0) del();  
 else if(msg.length()>10) verifica();
 msg="";
 
}

void add(){
 Serial.print("Quale TAG deve ottenere l'accesso?: ");
 msg="";
 while(msg.length()<13){
   while(rfid.available()>0){
     c=rfid.read();
     msg += c;
   }
 }
 if(ID.indexOf(msg)>=0) {
   Serial.println("\nAccesso consentito per questa TAG.");
   msg="";
 }
 else{
   Serial.print("Tessera: ");
   Serial.println(msg);
   ID += msg;
   ID += ",";
   //Serial.print("ID: ");
  // Serial.println(ID);
   msg="";
   Serial.println("Accesso Garantito per questa Tessera.");
 }

}

void del(){
 msg="";
 Serial.print("Quale Tag deve perdere l'accesso?: ");
 while(msg.length()<13){
   while(rfid.available()>0){
     c=rfid.read();
     msg += c;
   }
 }
 msg=msg.substring(1,13);
 if(ID.indexOf(msg)>=0){
   Serial.println(msg);
   Serial.println("TAG trovata. Accesso eliminato.");
   //ID.replace(card,"");
   int pos=ID.indexOf(msg);
   msg="";
   msg += ID.substring(0,pos);
   msg += ID.substring(pos+15,ID.length());
   ID="";
   ID += msg;
   //Serial.print("ID: ");
   //Serial.println(ID);
 } else Serial.println("\nTAG non trovata... Operazione non completata!");
 msg="";
}

void verifica(){
   msg=msg.substring(1,13);
   if(ID.indexOf(msg)>=0) Serial.println("Accesso Consentito!!!");
   
   else Serial.println("Access Negato!!!");


Risultato? Sulla schermata del Seriale non ricevo niente (A parte le scritte Serial Ready e RFID ready...)

Per fare delle prove, ho anche collegato il Pin 2 dell'RFID a RX di Arduino, ma mi rendeva impossibile caricare il codice sulla scheda Arduino!
Ho staccato quindi il collegamento del Pin 2->Rx, ho caricato il codice, quindi ho effettuato nuovamente il collegamento: niente da fare!

Se i collegamenti che ho riportato sono poco chiari posso allegare una foto (giusto il tempo di trovare la macchinetta fotografica^^").

Le fonti che ho utilizzato sono le seguenti:
http://www.instructables.com/id/Arduino-and-RFID-from-seeedstudio/step1/What-you-gonna-need/

Questo è il video di ciò che vorrei ottenere:
http://www.youtube.com/watch?v=upQv4rT0Rb4

Brunello

Buondi'

prima di tutto i collegamenti
A quale Pin di Arduino hai collegato il Tx dell' RFID ?
va' messo sul pin 5, visto che hai dichiarato 

SoftwareSerial rfid = SoftwareSerial(5, 6);

Laendor

OMG, io pensavo di collegarlo al pin TX di Arduino, quindi il pin 2!
Che figura da nabbo... effettuo immediatamente il test....

E' vero che tutta questa discussione può essere cancellata XD?

ratto93

Solo amministratori e mod possono eliminare una discussione, la possibilità di cancellare il proprio topic dallo stesso autore è stata tolta tempo addietro...
Se corri veloce come un fulmine, ti schianterai come un tuono.

uwefed


OMG, io pensavo di collegarlo al pin TX di Arduino, quindi il pin 2!
Che figura da nabbo... effettuo immediatamente il test....

E' vero che tutta questa discussione può essere cancellata XD?

Comunque il pin TX del modulo RFID va attacato al pin RX del Arduino e il RX della seriale hardware del Arduino Uno é il pin0
Ciao Uwe

Go Up