Stap 2: De Code en veel plezier bij het scannen van kaarten en het krijgen van hun id's
#define RFID_ENABLE 2 //to RFID inschakelen (verbinden met pin 2 de/Enable)
#define CODE_LEN 10 //Max lengte van RFID-tag
#define VALIDATE_TAG 1 //should we tag valideren?
#define VALIDATE_LENGTH 200 //maximum b/w tag lezen leest en valideren
#define ITERATION_LENGTH 2000 / / tijd, bij ms, gegeven aan de gebruiker aan de hand weg bewegen
#define START_BYTE 0x0A
#define STOP_BYTE 0x0D
char tag [CODE_LEN];
VOID Setup {}
Serial.begin(2400); fequency nodig, omdat de gebruikte frequentie op de RFID Reader Module
pinMode(RFID_ENABLE,OUTPUT);
}
void loop {}
enableRFID();
getRFIDTag();
if(isCodeValid()) {}
disableRFID();
sendCode();
delay(ITERATION_LENGTH);
} else {}
disableRFID();
Serial.println ("fout: kan niet worden voltooid proces!");
}
Serial.Flush();
clearCode();
}
/*
De geheugenruimte voor de tag naar 0s ruimt.
*/
ongeldig clearCode() {}
for (int i = 0; ik < CODE_LEN; i ++) {}
Label [i] = 0;
}
}
/*
De tag stuurt naar de computer.
*/
ongeldig sendCode() {}
Serial.Print("tag:");
for (int i = 0; ik < CODE_LEN; i ++) {}
Serial.Print(tag[i]);
}
}
/*
RFID-functies
*/
ongeldig enableRFID() {}
digitalWrite (RFID_ENABLE, laag);
}
ongeldig disableRFID() {}
digitalWrite (RFID_ENABLE, hoge);
}
/*
Blokkeren van functie, wacht en krijgt van de RFID-tag.
*/
ongeldig getRFIDTag() {}
byte next_byte;
while(Serial.available() < = 0) {}
Als ((next_byte = Serial.read()) == START_BYTE) {}
byte bytesread = 0;
while(bytesread < CODE_LEN) {}
if(Serial.available() > 0) {//wait voor de volgende byte
Als ((next_byte = Serial.read()) == STOP_BYTE) breken;
Label [bytesread ++] = next_byte;
}
}
}
}
/*
Wacht op de volgende inkomende tag om te zien als het overeenkomt met
de huidige code.
*/
Booleaanse isCodeValid() {}
byte next_byte;
int count = 0;
terwijl (Serial.available() < 2) {//there nog een STOP_BYTE in buffer
delay(1); waarschijnlijk niet een zeer zuiver milliseconde
Als (count ++ > VALIDATE_LENGTH) geretourneerd als false;
}
Serial.Read(); weggooien van extra STOP_BYTE
Als ((next_byte = Serial.read()) == START_BYTE) {}
byte bytes_read = 0;
terwijl (bytes_read < CODE_LEN) {}
Als (Serial.available() > 0) {//wait voor de volgende byte
Als ((next_byte = Serial.read()) == STOP_BYTE) breken;
Als (tag [bytes_read ++]! = next_byte) geretourneerd als false;
}
}
}
return true;
}
Veel plezier al uw objecten scannen! Ik had ook leuk! Het is een zeer koele module! Wanneer de lezer wacht een RFID-Tag dan de LED is rood. Kijk naar sommige van mijn andere projecten op