Advertisement
ocneves

rfid_multi_tags_full

Mar 1st, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. #include <MFRC522.h>
  2. #include <SPI.h>
  3.  
  4. int nfcreader = 1;
  5. int nfc0 = 6; // SPI PIN for first reader
  6. int nfc1 = 8; // SPI PIN for seconde reader
  7. int nfc2 = 10; // SPI PIN for terceiro reader
  8.  
  9. MFRC522 mfrc522_0(nfc0, 9);
  10. MFRC522 mfrc522_1(nfc1, 9);
  11. MFRC522 mfrc522_2(nfc2, 9);
  12.  
  13. void setup() {
  14.  
  15. Serial.begin(9600);
  16.  
  17. pinMode(nfc0, OUTPUT);
  18. pinMode(nfc1, OUTPUT);
  19. pinMode(nfc2, OUTPUT);
  20.  
  21. SPI.begin();
  22. SPI.setBitOrder(MSBFIRST);
  23.  
  24. // Init MFRC522 cards
  25. mfrc522_0.PCD_Init();
  26. mfrc522_1.PCD_Init();
  27. mfrc522_2.PCD_Init();
  28.  
  29. Serial.println("");
  30. }
  31.  
  32. void read32bitValue(int value, int ss)
  33. {
  34. digitalWrite(ss, LOW);
  35. uint32_t val;
  36. val = SPI.transfer(0xff); //0xff is a dummy
  37. val |= (uint32_t)SPI.transfer(0xff) << 8;
  38. val |= (uint32_t)SPI.transfer(0xff) << 16;
  39. val |= (uint32_t)SPI.transfer(0xff) << 24;
  40. digitalWrite(ss, HIGH);
  41. }
  42.  
  43. // Get the UID of the card being scanned
  44. String getID(MFRC522 card){
  45.  
  46. String output = "";
  47.  
  48. for (byte i = 0; i < card.uid.size; i++) {
  49. output += card.uid.uidByte[i] < 0x10 ? "0" : "";
  50. output += String(card.uid.uidByte[i],HEX);
  51. }
  52.  
  53. return output;
  54. }
  55.  
  56. void readCard(MFRC522 card,int readerNumber) {
  57.  
  58. if ( !card.PICC_IsNewCardPresent()) {
  59. return;
  60. }
  61.  
  62. if ( !card.PICC_ReadCardSerial()) {
  63. return;
  64. }
  65.  
  66.  
  67. if (getID(card) == "f3634ce5")
  68.  
  69. Serial.println("w");
  70. //Serial.print("Card "+String(readerNumber)+":");
  71. //Serial.println(getID(card));
  72. delay (200);
  73.  
  74. if (getID(card) == "e3f531db")
  75.  
  76. Serial.println("y");
  77. //Serial.print("Card "+String(readerNumber)+":");
  78. //Serial.println(getID(card));
  79. delay (200);
  80.  
  81. if (getID(card) == "530a6dd9")
  82.  
  83. Serial.println("k");
  84. //Serial.print("Card "+String(readerNumber)+":");
  85. //Serial.println(getID(card));
  86. delay (200);
  87.  
  88. //Serial.print("Card "+String(readerNumber)+":");
  89. //Serial.println(getID(card));
  90. //delay (500);
  91. }
  92.  
  93. void loop() {
  94.  
  95. do{
  96. switch (nfcreader)
  97. {
  98. case 0:
  99. read32bitValue(0, nfc0);
  100. nfcreader++;
  101. readCard(mfrc522_0,0);
  102. break;
  103.  
  104. case 1:
  105. read32bitValue(0, nfc1);
  106. nfcreader++;
  107. readCard(mfrc522_1,1);
  108. break;
  109.  
  110. case 2:
  111. read32bitValue(0, nfc2);
  112. nfcreader++;
  113. readCard(mfrc522_2,2);
  114. break;
  115.  
  116. default:
  117. nfcreader = 0;
  118. break;
  119. }
  120. }while(true);
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement