/* Using an RFID sensor to blink an LED light * * Date: 4/11/20 * * Description: This sketch uses an RFID sensor to blink an LED lightbulb. * When you bring an RFID Tag or Card within reading distance of the sensor, * the LED lightbulb will blink on and off once. The ssketch also prints the * ID/UID, type and any data blocks it can read from the RFID Tag or Card to * the serial monitor * * The sketch extends a MFRC522 library example; * for further details and other examples see: https://github.com/miguelbalboa/rfid * */ #include #include #define RST_PIN 9 // Configurable, see typical pin layout above #define SS_PIN 10 // Configurable, see typical pin layout above #define LED_BUILTIN 4 // Configurable, set LED pin MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); Serial.begin(9600); // Initialize serial communications with the PC while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) SPI.begin(); // Init SPI bus mfrc522.PCD_Init(); // Init MFRC522 delay(4); // Optional delay. Some board do need more time after init to be ready, see Readme mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); } void loop() { // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Select one of the cards if ( ! mfrc522.PICC_ReadCardSerial()) { return; } digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(2000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(2000); // wait for a second // Dump debug info about the card; PICC_HaltA() is automatically called mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }