#include <SPI.h>
#include <MFRC522.h>
// Define pins for RFID readers
#define RST_PIN_1 9
#define SDA_PIN_1 10
#define RST_PIN_2 7
#define SDA_PIN_2 8
// Define LED pins
#define LED_1_PIN 5 // LED for RFID reader 1
#define LED_2_PIN 6 // LED for RFID reader 2
MFRC522 rfid1(SDA_PIN_1, RST_PIN_1); // RFID reader 1
MFRC522 rfid2(SDA_PIN_2, RST_PIN_2); // RFID reader 2
void setup() {
Serial.begin(9600);
SPI.begin(); // Initialize SPI bus
// Initialize RFID readers
rfid1.PCD_Init();
rfid2.PCD_Init();
// Initialize LEDs as outputs
pinMode(LED_1_PIN, OUTPUT);
pinMode(LED_2_PIN, OUTPUT);
// Turn off LEDs initially
digitalWrite(LED_1_PIN, LOW);
digitalWrite(LED_2_PIN, LOW);
Serial.println("Place card/tag near one of the readers...");
}
void loop() {
// Check RFID Reader 1
if (rfid1.PICC_IsNewCardPresent() && rfid1.PICC_ReadCardSerial()) {
Serial.print("Reader 1 detected card ID: ");
printCardID(rfid1);
rfid1.PICC_HaltA(); // Halt reader 1
// Blink LED for RFID reader 1
blinkLED(LED_1_PIN);
}
// Check RFID Reader 2
if (rfid2.PICC_IsNewCardPresent() && rfid2.PICC_ReadCardSerial()) {
Serial.print("Reader 2 detected card ID: ");
printCardID(rfid2);
rfid2.PICC_HaltA(); // Halt reader 2
// Blink LED for RFID reader 2
blinkLED(LED_2_PIN);
}
}
// Function to print the RFID card ID
void printCardID(MFRC522& reader) {
for (byte i = 0; i < reader.uid.size; i++) {
Serial.print(reader.uid.uidByte[i], HEX);
}
Serial.println();
}
// Function to blink the LED
void blinkLED(int ledPin) {
digitalWrite(ledPin, HIGH); // Turn on the LED
delay(500); // Keep it on for 500 ms
digitalWrite(ledPin, LOW); // Turn off the LED
}
No comments:
Post a Comment