PlatformIO package of the Teensy core framework compatible with GCC 10 & C++20
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3 yıl önce
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * --------------------------------------------------------------------------------------------------------------------
  3. * Example sketch/program showing how to read data from a PICC to serial.
  4. * --------------------------------------------------------------------------------------------------------------------
  5. * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
  6. *
  7. * Example sketch/program showing how to read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID
  8. * Reader on the Arduino SPI interface.
  9. *
  10. * When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE
  11. * then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When
  12. * you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output
  13. * will show the ID/UID, type and any data blocks it can read. Note: you may see "Timeout in communication" messages
  14. * when removing the PICC from reading distance too early.
  15. *
  16. * If your reader supports it, this sketch/program will read all the PICCs presented (that is: multiple tag reading).
  17. * So if you stack two or more PICCs on top of each other and present them to the reader, it will first output all
  18. * details of the first and then the next PICC. Note that this may take some time as all data blocks are dumped, so
  19. * keep the PICCs at reading distance until complete.
  20. *
  21. * @license Released into the public domain.
  22. *
  23. * Typical pin layout used:
  24. * -----------------------------------------------------------------------------------------
  25. * MFRC522 Arduino Arduino Arduino Arduino Arduino
  26. * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro
  27. * Signal Pin Pin Pin Pin Pin Pin
  28. * -----------------------------------------------------------------------------------------
  29. * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST
  30. * SPI SS SDA(SS) 10 53 D10 10 10
  31. * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16
  32. * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14
  33. * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15
  34. */
  35. #include <SPI.h>
  36. #include <MFRC522.h>
  37. constexpr uint8_t RST_PIN = 9; // Configurable, see typical pin layout above
  38. constexpr uint8_t SS_PIN = 10; // Configurable, see typical pin layout above
  39. MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
  40. void setup() {
  41. Serial.begin(9600); // Initialize serial communications with the PC
  42. while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
  43. SPI.begin(); // Init SPI bus
  44. mfrc522.PCD_Init(); // Init MFRC522
  45. mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details
  46. Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
  47. }
  48. void loop() {
  49. // Look for new cards
  50. if ( ! mfrc522.PICC_IsNewCardPresent()) {
  51. return;
  52. }
  53. // Select one of the cards
  54. if ( ! mfrc522.PICC_ReadCardSerial()) {
  55. return;
  56. }
  57. // Dump debug info about the card; PICC_HaltA() is automatically called
  58. mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
  59. }