KGBRUS

Untitled

Jul 15th, 2024
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.77 KB | None | 0 0
  1. /**
  2.  
  3. Typical pin layout used:
  4. --------------------------------------------------------------------------------------------------------
  5. MFRC522 Arduino Arduino Arduino Arduino Arduino Arduino
  6. Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro Blue Pill
  7. Signal Pin Pin Pin Pin Pin Pin PIN
  8. --------------------------------------------------------------------------------------------------------
  9. RST/Reset RST 9 5 D9 RESET/ICSP-5 RST B0
  10. SPI SS SDA(SS) 10 53 D10 3 10 PA4
  11. IRQ ? ? ? ? 2 10 ?
  12. SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 PA7
  13. SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 PA6
  14. SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 PA5
  15.  
  16. More pin layouts for other boards can be found here: https://github.com/miguelbalboa/rfid#pin-layout
  17.  
  18.  
  19. 1.0 Aus RFID Test3_0 erstellt
  20. zweite LED eingefügt
  21.  
  22. */
  23. // Definition SPI
  24. #include <SPI.h> // SPI-Bibiothek hinzufügen
  25.  
  26. // Definition RFID
  27. #include <MFRC522.h> // MFRC Bibliothek hinzufügen
  28.  
  29. #define SDA PA4 // SPI Pinsdefiniern
  30. #define RST PB0 // SPI Pinsdefiniern
  31. MFRC522 mfrc522(SDA, RST);
  32.  
  33.  
  34. // definition LCD
  35. #include <LiquidCrystal.h>
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42. // Eingaenge
  43.  
  44.  
  45. // Ausgaenge
  46. const int LEDGRUN = PB11;
  47. const int LEDROT = PB12;
  48. const int LEDGELB = PB13;
  49. const int LSEIN = PB14;
  50.  
  51.  
  52. // Variablen
  53.  
  54. uint8_t RundeRFID1 = 0;
  55. uint8_t RundeRFID2 = 0;
  56. bool RFIDZahler1 = 0;
  57. bool RFIDZahler2 = 0;
  58.  
  59. uint8_t LSEINState = 0;
  60.  
  61. // LCD Ausgänge
  62. const int rs = PA0, en = PA1, d4 = PA2, d5 = PA3, d6 = PB1, d7 = PB10;
  63. LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
  64.  
  65.  
  66. // State Maschine
  67.  
  68.  
  69.  
  70. void setup()
  71. {
  72. SPI.begin(); // Init SPI bus
  73. mfrc522.PCD_Init(); // Init MFRC522 card
  74. pinMode(LEDGRUN, OUTPUT);
  75. pinMode(LEDROT, OUTPUT);
  76. pinMode(LEDGELB, OUTPUT);
  77. pinMode(LSEIN, INPUT);
  78.  
  79.  
  80. lcd.clear();
  81. delay(1000);
  82. lcd.begin(20, 4); // Initialisierung LCD
  83. lcd.setCursor(0, 0);
  84. lcd.print("Hello World"); // Testanzeige LCD
  85. lcd.setCursor(0, 1);
  86. digitalWrite (LEDGRUN, HIGH);
  87. digitalWrite (LEDROT, HIGH);
  88. digitalWrite (LEDGELB, HIGH);
  89. delay(500);
  90. digitalWrite (LEDGRUN, LOW);
  91. digitalWrite (LEDROT, LOW);
  92. digitalWrite (LEDGELB, LOW);
  93. }
  94.  
  95. void loop()
  96.  
  97. {
  98. {
  99. String WertDEZ;
  100.  
  101. if (!mfrc522.PICC_IsNewCardPresent()) // Wenn keine Karte in Reichweite ist ..
  102. {
  103. return; // .. wird die Abfrage wiederholt.
  104. }
  105. if (!mfrc522.PICC_ReadCardSerial()) // Wenn kein RFID-Sender ausgewählt wurde ..
  106. {
  107. return; // .. wird die Abfrage wiederholt.
  108. }
  109. for (byte i = 0; i < mfrc522.uid.size; i++) // Dezimal-Wert in Strings schreiben
  110. {
  111. WertDEZ = WertDEZ + String(mfrc522.uid.uidByte[i], DEC) + " "; // String zusammenbauen
  112. }
  113. WertDEZ.trim(); // trim() -> Leerzeichen am Ende des Strings entfernen
  114. lcd.setCursor(0, 0);
  115. lcd.print(WertDEZ); // Kennung dezimal anzeigen
  116. lcd.setCursor(0, 4);
  117. lcd.print( "T1=");
  118. lcd.print(RundeRFID1);
  119. lcd.print(" ");
  120. lcd.print("T2=");
  121. lcd.print(RundeRFID2);
  122.  
  123. if (WertDEZ == "163 90 21 20")
  124. {
  125. digitalWrite(LEDGRUN, HIGH);
  126. if (RFIDZahler1 == 0) // Wenn noch nicht gezählt (Damit nur einmal gezählt wird)
  127. {
  128. RundeRFID1 = RundeRFID1 + 1;
  129. RFIDZahler1 = 1; // Zaehler auf gezahlt setzten.
  130. }
  131. }
  132. else
  133. {
  134. digitalWrite(LEDGRUN, LOW);
  135. RFIDZahler1 = 0; // Wenn RFID Chip entnommen, dann Zaeler auf ungezaehlt setzten
  136. }
  137. if (WertDEZ == "4 55 126 202 32 18 145")
  138. {
  139. digitalWrite(LEDROT, HIGH);
  140. if (RFIDZahler2 == 0) // Wenn noch nicht gezählt (Damit nur einmal gezählt wird)
  141. {
  142. RundeRFID2 = RundeRFID2 + 1;
  143. RFIDZahler2 = 1; // Wenn RFID Chip entnommen, dann Zaeler auf ungezaehlt setzten
  144. }
  145. }
  146. else
  147. {
  148. digitalWrite(LEDROT, LOW);
  149. RFIDZahler2 = 0;
  150. }
  151. delay(50); // kurze Pause, damit nur ein Wert gelesen wird
  152. }
  153. {
  154. LSEINState = digitalRead(LSEIN);
  155. if (LSEINState == LOW)
  156. {
  157. digitalWrite(LEDGELB, HIGH);
  158. }
  159. else
  160. {
  161. digitalWrite(LEDGELB, LOW);
  162. }
  163. }
  164. }
  165.  
Tags: RFIDFail
Advertisement
Add Comment
Please, Sign In to add comment