Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int stepPin = 5;
- const int dirPin = 4;
- #include <SPI.h>
- #include <MFRC522.h>
- #define SS_PIN 10
- #define RST_PIN 9
- #define OUT_PIN_GREEN 6
- #define OUT_PIN_RED 7
- #define NUMBER_OF_KEYS 2
- MFRC522 mfrc522 (SS_PIN, RST_PIN);
- // Array mit den zugetragenen RFID-UIDs
- Static unsigned short code [NUMBER_OF_KEYS] [4] = {{87, 10, 8, 133}, {37, 137, 168, 137}};
- void setup ()
- {
- Serienanfang (9600);
- SPI.begin ();
- mfrc522.PCD_Init ();
- pinMode (stepPin, OUTPUT);
- pinMode (dirPin, OUTPUT);
- pinMode (OUT_PIN_GREEN, AUSGABE);
- Pin-Modus (OUT_PIN_RED, OUTPUT);
- }
- Leere Schleife ()
- {
- // Wenn eine RFID-Karte in der Nähe ist:
- if (mfrc522.PICC_IsNewCardPresent ())
- {
- unsigned kurz doOpen = checkID ();
- if (doOpen! = 1)
- {
- digitalWrite (OUT_PIN_GREEN, HOCH);
- Verzögerung (2000);
- digitalWrite (OUT_PIN_GREEN, LOW);
- digitalWrite (dirPin, HIGH); // Ermöglicht dem Motor, sich in eine bestimmte Richtung zu bewegen
- // Macht 3750 Impulse für eine volle Umdrehung
- für (int x = 0; x <3750; x ++)
- {
- digitalWrite (stepPin, HOCH);
- VerzögerungMikrosekunden (150);
- digitalWrite (stepPin, LOW);
- VerzögerungMikrosekunden (150);
- }
- Verzögerung (3000); // 3 Sek. warten
- }sonst
- {
- {
- digitalWrite (OUT_PIN_RED, HOCH);
- Verzögerung (1000);
- digitalWrite (OUT_PIN_RED, LOW);
- digitalWrite (dirPin, LOW); // Ändert die Drehrichtung
- // Erzeugt 3750 Impulse für zwei vollständige Zyklen
- für (int x = 0; x <3750; x ++)
- {
- digitalWrite (stepPin, HOCH);
- VerzögerungMikrosekunden (150);
- digitalWrite (stepPin, LOW);
- VerzögerungMikrosekunden (150);
- }
- Verzögerung (3000);
- }
- }
- }
- }
- / **
- mfrc522.PICC_IsNewCardPresent () muss vorher überprüft werden.
- @return 0 wenn falsch, 1 wenn wahr
- * /
- unsigned short checkID () {
- if (! mfrc522.PICC_ReadCardSerial ()) {
- zurückgeben 0;
- }
- Serial.print ("Groesse:"); Serial.println (mfrc522.uid.größe);
- Serial.print ("UID 1:"); Serial.println (mfrc522.uid.uidByte [0]);
- Serial.print ("UID 2:"); Serial.println (mfrc522.uid.uidByte [1]);
- Serial.print ("UID 3:"); Serial.println (mfrc522.uid.uidByte [2]);
- Serial.print ("UID 4:"); Serial.println (mfrc522.uid.uidByte [3]);
- kurz doOpen = 0, i;
- für (i = 0; i <NUMBER_OF_KEYS; i ++) {
- 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]) {
- doOpen = 1;
- Serial.println ("Code akzeptiert!");
- Unterbrechung;
- }
- }
- mfrc522.PICC_HaltA (); // Hör auf zu lesen
- zurückgebenOffnen;
- }
Add Comment
Please, Sign In to add comment