logo_lr.jpgPROXIMITY TESTS RFID:

FINAL PRESENTATION VIDEO:

FINAL PRESENTATION:

lightrunners_pp.pdf

ARDUINO CODE:

#include <SPI.h>
#include <MFRC522.h>
#include <Adafruit_NeoPixel.h>

#define NUM_LEDS 6 Number of NeoPixels
#define PIN 7
DIGITAL pin # where NeoPixels are connected

#define RST_PIN 9 Pin 9 for reset of RC522
#define SS_PIN 10
Pin 10 for SS (SDA) RC522
MFRC522 mfrc522(SS_PIN, RST_PIN);
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
Serial.begin(9600); serial communication
SPI.begin();
Bus SPI
mfrc522.PCD_Init(); MFRC522
Serial.println(“Identificación LightRunner”);
strip.begin();
strip.setBrightness(100);
100/255 brightness (about 40%)
strip.show(); Initialize all pixels to 'off'
} byte ActualUID[4];
to save tag code
byte Usuario1[4]= {0xAB, 0x00, 0x17, 0xA3} ; user 1 code AB 00 17 A3
byte Usuario2[4]= {0x64, 0x62, 0x15, 0xA0} ;
user 2 code 64 62 15 A0
void loop() {

if ( mfrc522.PICC_IsNewCardPresent())

    {\\
  //to select a card\\
        if ( mfrc522.PICC_ReadCardSerial())\\
        {\\
              Serial.print(F("Card UID:"));\\
              for (byte i = 0; i < mfrc522.uid.size; i++) {\\
                      Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");\\
                      Serial.print(mfrc522.uid.uidByte[i], HEX);\\
                      ActualUID[i]=mfrc522.uid.uidByte[i];\\
              }\\
              Serial.print("     ");\\
              //comparation of UID to switch on, swith off or make another different kind of sequence\\
              if(compareArray(ActualUID,Usuario1))\\
                {\\
                  for(int j=0; j<256; j++) {\\
                    for(int i=0; i<NUM_LEDS; i++) {\\
                      strip.setPixelColor(i, Wheel((i * 16 + j) & 255));\\
                    }\\
                    strip.show();\\
                    delay(20);\\
                  }\\
                }\\
                else if(compareArray(ActualUID,Usuario2))\\
                {\\
                  for(int j=0; j<256; j++) {\\
                    for(int i=0; i<NUM_LEDS; i++) {\\
                      strip.setPixelColor(i, Wheel((i * 16 + j) & 255));\\
                    }\\
                    strip.show();\\
                    delay(20);\\
                  }\\
                }\\
                \\
                \\
                else{\\
                  \\
                  for(int j=0; j<256; j++) {\\
                    for(int i=0; i<NUM_LEDS; i++) {\\
                      strip.setPixelColor(i, Wheel((i * 8 + j) & 055));\\
                    }\\
                    strip.show();\\
                    delay(20);\\
                  }
                  // to switch off the leds\\
                   for(int j=0; j<256; j++) {\\
                    for(int i=0; i<NUM_LEDS; i++) {\\
                      strip.setPixelColor(i, 0);\\
                    }\\
                    strip.show();\\
                    delay(20);\\
                  }\\
                  \\
                  \\
                }\\
              \\
              mfrc522.PICC_HaltA();\\
        }
      }

}

uint32_t Wheel(byte WheelPos) {
if(WheelPos < 85) {

return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);\\

} else if(WheelPos < 170) {

WheelPos -= 85;\\
return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);\\

} else {

WheelPos -= 170;\\
return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);\\

}
}


boolean compareArray(byte array1[],byte array2[])
{
if(array1[0] != array2[0])return(false);
if(array1[1] != array2[1])return(false);
if(array1[2] != array2[2])return(false);
if(array1[3] != array2[3])return(false);
return(true);
}