Go Down

Topic: RFID Flooding (Read 286 times) previous topic - next topic

JacobNes

Hey, I'm writing a program for reading and checking RFID cards. However I have encountered a problem with flooding. If I hold a card on the read for too long(more than half a second) it will print twice. It will go through the check once and after a delay for 7 seconds it will go trough again.
I am using the Arduino Uno and RDM630.
Code: [Select]
#include <SoftwareSerial.h>
#define rxPin 6
#define txPin 7
SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);
String tegn="";
String kode1="5000893AF310";
String kode2="5100FEA91F19";
byte teller=0;

void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
pinMode(9,OUTPUT);
}

void loop()
{
 
  if (mySerial.available() > 0)
                            {
                           teller++;
                           tegn = tegn+(char)mySerial.read();
                           if(teller==14)
                                         {
                                         tegn=tegn.substring(1,13);
                                         
                                         if(kode1==tegn)
                                                       {
                                                        Serial.print("Gregor");
                                                        Serial.print(";");
                                                        Serial.print("Kontorpersonell");
                                                        Serial.print(";");
                                                        Serial.println(tegn);
                                                        digitalWrite(9,HIGH);
                                                        delay(4000);
                                                        digitalWrite(9,LOW);       
                                                       }
                                                     
                                         if(kode2==tegn)
                                                       {
                                                        Serial.print("Joshua");
                                                        Serial.print(";");
                                                        Serial.print("Administrasjon");
                                                        Serial.print(";");
                                                        Serial.println(tegn);
                                                        digitalWrite(9,HIGH);
                                                        delay(4000);
                                                        digitalWrite(9,LOW);ยจ       
                                                       }

                                         tegn="";                                 
                                         teller=0;
                                        delay(3000);
                                         }
                             }

                       
}
Jacob

PaulS

You could add a String (ugh!) to hold the last tag read, and not care about the value read from the tag if it is the same as the tag read last time. You probably want to record when the last tag was read, too, so reading the same tag again 2 days later is OK, but 2 seconds later is not.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy