Created
September 2, 2017 16:42
-
-
Save OverlordEx3/eba8f7ed073e8d714f64f6ff5dd09d33 to your computer and use it in GitHub Desktop.
Lector RFID.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <SPI.h> | |
#include <MFRC522.h> | |
#define RST_PIN 9 //Pin 9 para el reset del RC522 | |
#define SS_PIN 10 //Pin 10 para el SS (SDA) del RC522 | |
MFRC522 mfrc522(SS_PIN, RST_PIN); //Creamos el objeto para el RC522 | |
void setup() { | |
Serial.begin(9600); //Iniciamos la comunicación serial | |
SPI.begin(); //Iniciamos el Bus SPI | |
mfrc522.PCD_Init(); // Iniciamos el MFRC522 | |
Serial.println("Lectura del UID"); | |
} | |
unsigned int result = 0; | |
void loop() { | |
// Revisamos si hay nuevas tarjetas presentes | |
switch(result = mfrc522.PICC_IsNewCardPresent()) { | |
case mfrc522.STATUS_OK: | |
Serial.print("Tarjeta detectada con exito. Resultado es "); | |
Serial.print(result, HEX); | |
Serial.println(); | |
//Seleccionamos una tarjeta | |
if ( mfrc522.PICC_ReadCardSerial()) | |
{ | |
// Enviamos serialemente su UID | |
Serial.print("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); | |
} | |
Serial.println(); | |
} | |
break; | |
case mfrc522.STATUS_COLLISION: | |
Serial.print("Colisión detectada. Resultado es "); | |
Serial.print(result, HEX); | |
Serial.println(); | |
break; | |
case mfrc522.STATUS_ERROR: | |
Serial.print("Error en la lectura. Ni me preguntes. Resultado es "); | |
Serial.print(result, HEX); | |
Serial.println(); | |
break; | |
case mfrc522.STATUS_TIMEOUT: | |
Serial.print("Error lectura TIMEOUT. Resultado es "); | |
Serial.print(result, HEX); | |
Serial.println(); | |
break; | |
case mfrc522.STATUS_NO_ROOM: | |
Serial.print("Buffer Overflow. Resultado es "); | |
Serial.print(result, HEX); | |
Serial.println(); | |
break; | |
case mfrc522.STATUS_CRC_WRONG: | |
Serial.print("Error en el CRC. Resultado es "); | |
Serial.print(result, HEX); | |
Serial.println(); | |
break; | |
case mfrc522.STATUS_MIFARE_NACK: | |
Serial.print("MIFARE respondio NACK. Resultado es "); | |
Serial.print(result, HEX); | |
Serial.println(); | |
break; | |
default: | |
Serial.print("Error en la comunicación. Resultado es "); | |
Serial.print(result, HEX); | |
Serial.println(); | |
break; | |
} | |
mfrc522.PICC_HaltA(); | |
delay(1000); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment