Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int RFIDResetPin = 13;
- #define led 12
- #define przekaznik 7
- char tag1[13] = "00782AF08220";
- char tag2[13] = "0B0068956D9B";
- char tag3[13] = "TU WPISZCIE TRZECIEGO TAGA";
- char tagString[13];
- boolean first = false, second = false, third = false;
- void setup()
- {
- pinMode(przekaznik, OUTPUT);
- digitalWrite(przekaznik, HIGH);
- pinMode(RFIDResetPin, OUTPUT);
- digitalWrite(RFIDResetPin, HIGH);
- pinMode(led, OUTPUT);
- digitalWrite(led,LOW);
- Serial.begin (9600);
- }
- void loop() {
- int index = 0;
- boolean reading = false;
- while(Serial.available())
- {
- int readByte = Serial.read(); //read next available byte
- if(readByte == 2) reading = true; //begining of tag
- if(readByte == 3) reading = false; //end of tag
- if(reading && readByte != 2 && readByte != 10 && readByte != 13)
- {
- tagString[index] = readByte;
- index ++;
- }
- }
- checkTag(tagString);
- clearTag(); //Clear the char of all value
- if(first == true && second == true && third == true)
- {
- digitalWrite(led, LOW);
- delay(500);
- digitalWrite(led, HIGH);
- wlacz_przekaznik();
- first = false;
- second = false;
- third = false;
- }
- resetReader();
- }
- void checkTag(char tag[])
- {
- if(strlen(tag) == 0) return; //empty, no need to contunue
- if(compareTag(tag, tag1) first = true;
- if(first == true) if(compareTag(tag, tag2) second = true;
- if(second == true) if(compareTag(tag, tag3) third = true;
- }
- void lightLED(int pin)
- {
- ///////////////////////////////////
- //Turn on LED on pin "pin" for 250ms
- ///////////////////////////////////
- Serial.println(pin);
- digitalWrite(led, HIGH);
- delay(250);
- digitalWrite(led, LOW);
- }
- void resetReader()
- {
- ///////////////////////////////////
- //Reset the RFID reader to read again.
- ///////////////////////////////////
- digitalWrite(RFIDResetPin, LOW);
- digitalWrite(RFIDResetPin, HIGH);
- delay(1500);
- }
- void clearTag()
- {
- for(int i = 0; i < strlen(tagString); i++)
- {
- tagString[i] = 0;
- }
- }
- boolean compareTag(char one[], char two[])
- {
- if(strlen(one) == 0) return false; //empty
- for(int i = 0; i < 12; i++){
- if(one[i] != two[i]) return false;
- }
- return true; //no mismatches
- }
- void wlacz_przekaznik()
- {
- digitalWrite(przekaznik,LOW);
- delay(15000);
- digitalWrite(przekaznik,HIGH);
- }
Advertisement
Add Comment
Please, Sign In to add comment