Okay so I was getting help from another extremely helpful guy on here (that’s why I’m as far as I am) but I need some help on the last step of the rfid part of my project. I have three readers connected, and they work. I have two partial uids set to light a led while the rest should do nothing. The problem is after I read a tag that lights the led, the next tag, regardless of uid, will light the led also. It only does this once. So I’m trying to figure out how to stop this from happening. any ideas?
/* MOSI: Pin 11 / ICSP-4
* MISO: Pin 12 / ICSP-1
* SCK : Pin 13 / ICSP-3
* SS : Pin 10 (Configurable)
* RST : Pin 9 (Configurable)
*/
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#define SS_PIN 10
#define SS2_PIN 4
#define SS3_PIN 8
#define RST_PIN 9
#define redLed 7
MFRC522 readerOne(SS_PIN, RST_PIN);
MFRC522 readerTwo(SS2_PIN, RST_PIN);
MFRC522 readerThree(SS3_PIN, RST_PIN);
void setup() {
pinMode(redLed, OUTPUT);
SPI.begin();
readerOne.PCD_Init();
readerTwo.PCD_Init();
readerThree.PCD_Init();
}
int myCat = 0x03;
int yourCat = 0xF3;
int readTag;
int readTagTwo;
int readTagThree;
void loop() {
readTag = (readerOne.uid.uidByte[0]);
readTagTwo = (readerTwo.uid.uidByte[0]);
readTagThree = (readerThree.uid.uidByte[0]);
if (readerOne.PICC_IsNewCardPresent()){
(readerOne.PICC_ReadCardSerial()); {
if(readTag == myCat){
digitalWrite(redLed, HIGH);
delay(1800);
digitalWrite(redLed, LOW);}
else{
if(readTag == yourCat){
digitalWrite(redLed, HIGH);
delay(1800);
digitalWrite(redLed, LOW);
}
}
}
}
if (readerTwo.PICC_IsNewCardPresent()){
(readerTwo.PICC_ReadCardSerial()); {
if(readTagTwo == myCat){
digitalWrite(redLed, HIGH);
delay(1800);
digitalWrite(redLed, LOW);}
else{
if(readTagTwo == yourCat){
digitalWrite(redLed, HIGH);
delay(1800);
digitalWrite(redLed, LOW);
}
}
}
}
if (readerThree.PICC_IsNewCardPresent()){
(readerThree.PICC_ReadCardSerial()); {
if(readTagThree == myCat){
digitalWrite(redLed, HIGH);
delay(1800);
digitalWrite(redLed, LOW);}
else{
if(readTagThree == yourCat){
digitalWrite(redLed, HIGH);
delay(1800);
digitalWrite(redLed, LOW);
}
}
}
}
}