Skip to content

Instantly share code, notes, and snippets.

@OverlordEx3
Created September 2, 2017 16:42
Show Gist options
  • Save OverlordEx3/eba8f7ed073e8d714f64f6ff5dd09d33 to your computer and use it in GitHub Desktop.
Save OverlordEx3/eba8f7ed073e8d714f64f6ff5dd09d33 to your computer and use it in GitHub Desktop.
Lector RFID.
#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