/* SETA43 http://www.seta43.netau.net/ http://seta43.blogspot.com.es/ */ /* basado en GeekChickens //http://geekchickens.blogspot.com.es/ /* SDA es el pin 10 SCK es el pin 13 MOSI es el pin 11 MISO es el pin 12 RST es el pin 9 */ #include <SPI.h> #include <RFID.h> #define SS_PIN 10 #define RST_PIN 9 #define DEBUG 0 RFID rfid(SS_PIN, RST_PIN); int numero_serie[5]; unsigned char usuariosON[10][5]={ 151,44,65,197,63, 214,191,212,72,245, 206,12,97,113,210, 78,179,151,113,27, 190,187,151,113,227, } ; const int ledPinOK = 2; const int ledPinERROR = 3; // Sound void setup() { Serial.begin(9600); SPI.begin(); pinMode(ledPinOK, OUTPUT); pinMode(ledPinERROR, OUTPUT); rfid.init(); Serial.println("Inicia "); #if DEBUG for(int z=0; z<5 ; z++) { Serial.print("Usuario "); Serial.print(z);Serial.print("-> "); for(int i=0; i<=4 ; i++) { Serial.print(usuariosON[z][i]); Serial.print(","); } Serial.println(" "); } #endif digitalWrite(ledPinOK, LOW); digitalWrite(ledPinERROR, LOW); } void loop() { int i,z; if (rfid.isCard()) { if (rfid.readCardSerial()) { Serial.print("Numero usuario: "); // guardamos el numero del usuario for(int i=0; i<=4 ; i++) { numero_serie[i] = rfid.serNum[i]; } for(i=0; i<=4 ; i++) // y lo imprimimos { Serial.print(numero_serie[i]); Serial.print(","); } if(-1==detectarUsuario()) { //Error Usuario for(z=1; z<12 ; z++) if(z&1) { for(i=0; i<200 ; i++) {digitalWrite(ledPinERROR, i&1); delay(1);} } else { delay(200); } } else { //Ok usuario digitalWrite(ledPinOK, HIGH); for(i=0; i<100 ; i++) {digitalWrite(ledPinERROR, i&1); delay(3);} } delay(1000); digitalWrite(ledPinOK, LOW); digitalWrite(ledPinERROR, LOW); } } rfid.halt(); } unsigned int detectarUsuario() { char f1; int z,i; Serial.println(); Serial.println("Chequeando usuario"); for(z=0; z<5 ; z++) { f1=0; for(i=0; i<=4 ; i++) { if(usuariosON[z][i]==numero_serie[i]) f1++; } if(f1==5) { Serial.print("OK-Usuario "); Serial.println(z); return(z); } } Serial.println("Error Usuario "); return(-1); } |