Guest User

Untitled

a guest
Dec 14th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. const int stepPin = 5;
  2. const int dirPin = 4;
  3. #include <SPI.h>
  4. #include <MFRC522.h>
  5. #define SS_PIN 10
  6. #define RST_PIN 9
  7. #define OUT_PIN_GREEN 6
  8. #define OUT_PIN_RED 7
  9. #define NUMBER_OF_KEYS 2
  10.  
  11. MFRC522 mfrc522 (SS_PIN, RST_PIN);
  12.  
  13. // Array mit den zugetragenen RFID-UIDs
  14. Static unsigned short code [NUMBER_OF_KEYS] [4] = {{87, 10, 8, 133}, {37, 137, 168, 137}};
  15.  
  16. void setup ()
  17. {
  18. Serienanfang (9600);
  19. SPI.begin ();
  20. mfrc522.PCD_Init ();
  21. pinMode (stepPin, OUTPUT);
  22. pinMode (dirPin, OUTPUT);
  23. pinMode (OUT_PIN_GREEN, AUSGABE);
  24. Pin-Modus (OUT_PIN_RED, OUTPUT);
  25.  
  26. }
  27.  
  28. Leere Schleife ()
  29. {
  30. // Wenn eine RFID-Karte in der Nähe ist:
  31. if (mfrc522.PICC_IsNewCardPresent ())
  32. {
  33. unsigned kurz doOpen = checkID ();
  34. if (doOpen! = 1)
  35. {
  36. digitalWrite (OUT_PIN_GREEN, HOCH);
  37. Verzögerung (2000);
  38. digitalWrite (OUT_PIN_GREEN, LOW);
  39.  
  40. digitalWrite (dirPin, HIGH); // Ermöglicht dem Motor, sich in eine bestimmte Richtung zu bewegen
  41. // Macht 3750 Impulse für eine volle Umdrehung
  42. für (int x = 0; x <3750; x ++)
  43. {
  44. digitalWrite (stepPin, HOCH);
  45. VerzögerungMikrosekunden (150);
  46. digitalWrite (stepPin, LOW);
  47. VerzögerungMikrosekunden (150);
  48. }
  49. Verzögerung (3000); // 3 Sek. warten
  50.  
  51. }sonst
  52. {
  53. {
  54. digitalWrite (OUT_PIN_RED, HOCH);
  55. Verzögerung (1000);
  56. digitalWrite (OUT_PIN_RED, LOW);
  57.  
  58. digitalWrite (dirPin, LOW); // Ändert die Drehrichtung
  59. // Erzeugt 3750 Impulse für zwei vollständige Zyklen
  60. für (int x = 0; x <3750; x ++)
  61. {
  62. digitalWrite (stepPin, HOCH);
  63. VerzögerungMikrosekunden (150);
  64. digitalWrite (stepPin, LOW);
  65. VerzögerungMikrosekunden (150);
  66. }
  67. Verzögerung (3000);
  68. }
  69. }
  70. }
  71. }
  72. / **
  73. mfrc522.PICC_IsNewCardPresent () muss vorher überprüft werden.
  74. @return 0 wenn falsch, 1 wenn wahr
  75. * /
  76. unsigned short checkID () {
  77. if (! mfrc522.PICC_ReadCardSerial ()) {
  78. zurückgeben 0;
  79. }
  80. Serial.print ("Groesse:"); Serial.println (mfrc522.uid.größe);
  81. Serial.print ("UID 1:"); Serial.println (mfrc522.uid.uidByte [0]);
  82. Serial.print ("UID 2:"); Serial.println (mfrc522.uid.uidByte [1]);
  83. Serial.print ("UID 3:"); Serial.println (mfrc522.uid.uidByte [2]);
  84. Serial.print ("UID 4:"); Serial.println (mfrc522.uid.uidByte [3]);
  85.  
  86. kurz doOpen = 0, i;
  87. für (i = 0; i <NUMBER_OF_KEYS; i ++) {
  88. if (mfrc522.uid.uidByte [0] == code [i] [0] && mfrc522.uid.uidByte [1] == code [i] [1] && mfrc522.uid.uidByte [2] == code [ i] [2] && mfrc522.uid.uidByte [3] == code [i] [3]) {
  89. doOpen = 1;
  90. Serial.println ("Code akzeptiert!");
  91. Unterbrechung;
  92. }
  93. }
  94. mfrc522.PICC_HaltA (); // Hör auf zu lesen
  95. zurückgebenOffnen;
  96. }
Add Comment
Please, Sign In to add comment