Mifare RFID

pYro_65:
Yes, you could look for a software spi library and use it on a custom pin set, but you would have to modify the rfid to use it as well.

Thanks again, since I'm looking for a simple system, do you think this item would be better?..

http://www.ebay.co.uk/itm/200868439895?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649

Code looks much more streamlined!

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); //pin2 Rx, pin3 Tx
int CMD[64]; // Here the Max command length is set as 64 bytes. For example, Command “AB 02 01” is 3 bytes int comlen =0;
int out_flag =0;
void setup()
{
Serial.begin(9600);
mySerial.listen();
Serial.println("Serial number will be displayed here if a card is detected by the module:\n"); // set the data rate for the SoftwareSerial port
mySerial.begin(9600);
delay(10);
mySerial.write(0x02); //Send the command to read RFID tag, please refer to the manual for more detail. }
void loop() // run over and over
{
while (Serial.available())
{
int a = SerialReadHexDigit(); //Serial.println(a);
RFID module
GND VCC TXD RXD
???????
if(a>=0){ CMD[comlen] = a; comlen++;
}
delay(10);
}
for(int i=0; i<comlen; i+=2){
int c = mySerial.write( CMD[i]*16 + CMD[i+1]); //Convert Hex Characters in to Hex number, and send it to RFID. }
comlen =0;
while (mySerial.available()) {
byte C = mySerial.read();
if (C<10) Serial.print("0"); Serial.print(C ,HEX); //Display in HEX Serial.print(" ");
out_flag =1; }
if (out_flag >0) { Serial.println(); out_flag = 0;
} }
/************************************************************************************* The following function is to receive data and judge if it is HEX character. Hex characters include 1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,A,B,C,D,E,F
Any other characters sent with the command will be ignored. **************************************************************************************/
int SerialReadHexDigit()
{
byte c = (byte) Serial.read(); if (c >= '0' && c <= '9') {
return c - '0';
} else if (c >= 'a' && c <= 'f') {
returnc-'a'+10;
} else if (c >= 'A' && c <= 'F') {
returnc-'A'+10; }else{
return -1; // getting here is bad: it means the character was invalid }
}