Untitled
unknown
plain_text
a year ago
1.9 kB
8
Indexable
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10 // Pin de selección de esclavo (SDA)
#define RST_PIN 9 // Pin de reset
MFRC522 rfid(SS_PIN, RST_PIN); // Crear instancia del lector
void setup() {
Serial.begin(9600); // Inicializar comunicación serial
SPI.begin(); // Iniciar el bus SPI
rfid.PCD_Init(); // Inicializar el lector RFID
Serial.println("Acerque la tarjeta al lector...");
}
void loop() {
// Revisar si hay una tarjeta presente
if (rfid.PICC_IsNewCardPresent()) {
// Seleccionar la tarjeta
if (rfid.PICC_ReadCardSerial()) {
Serial.print("UID de la tarjeta: ");
for (byte i = 0; i < rfid.uid.size; i++) {
Serial.print(rfid.uid.uidByte[i], HEX);
Serial.print(" ");
}
Serial.println();
// Escribir datos en la tarjeta
byte block = 4; // Número de bloque donde quieres escribir
byte data[] = {0xDE, 0xAD, 0xBE, 0xEF, 0x00, 0x00, 0x00, 0x00}; // Datos de prueba
// Escribir datos en el bloque
MFRC522::StatusCode status;
status = rfid.MIFARE_Write(block, data, 16);
if (status == MFRC522::STATUS_OK) {
Serial.println("Datos escritos correctamente.");
} else {
Serial.print("Error al escribir: ");
Serial.println(status);
}
// Leer el bloque
byte buffer[18]; // Buffer para almacenar los datos leídos
byte size = sizeof(buffer); // Tamaño del buffer
status = rfid.MIFARE_Read(block, buffer, &size);
if (status == MFRC522::STATUS_OK) {
Serial.print("Datos leídos: ");
for (byte i = 0; i < size; i++) {
Serial.print(buffer[i], HEX);
Serial.print(" ");
}
Serial.println();
} else {
Serial.print("Error al leer: ");
Serial.println(status);
}
rfid.PICC_HaltA(); // Detener la comunicación con la tarjeta
}
}
}Editor is loading...
Leave a Comment