#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/spi.h"
#include "MFRC522.h"
// RFID Pins
#define RST_PIN 5
#define SDA_PIN 2
#define SCK_PIN 6
#define MOSI_PIN 3
#define MISO_PIN 4
MFRC522 rfid(RST_PIN, SDA_PIN);
void setup() {
stdio_init_all();
// Initialize SPI for RFID
spi_init(spi0, 500000); // SPI with 500 kHz frequency
gpio_set_function(SCK_PIN, GPIO_FUNC_SPI);
gpio_set_function(MOSI_PIN, GPIO_FUNC_SPI);
gpio_set_function(MISO_PIN, GPIO_FUNC_SPI);
// Initialize RFID
gpio_init(SDA_PIN);
gpio_set_dir(SDA_PIN, GPIO_OUT);
rfid.PCD_Init();
printf("RFID Module Initialized\n");
}
void loop() {
// Check for a new card
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) {
sleep_ms(500); // Wait before the next check
return;
}
// Print the UID of the card
printf("Card UID: ");
for (uint8_t i = 0; i < rfid.uid.size; i++) {
printf("%02X ", rfid.uid.uidByte[i]);
}
printf("\n");
rfid.PICC_HaltA(); // Halt the card
}
int main() {
setup();
while (true) {
loop();
}
}