Created
January 29, 2017 14:44
-
-
Save michaelsarduino/921ff7f33b92fcf8ba43c70edb97b439 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <SPI.h> | |
#include <MFRC522.h> // Nachladen der notwendigen Bibliotheken | |
#define RST_PIN 9 | |
#define SS_PIN 10 // Pinout definieren (siehe Abschnitt Verkabelung) | |
MFRC522 mfrc522(SS_PIN, RST_PIN); | |
byte readCard[4]; // Array zum Abspeichern der UID der gerade gelesenen Karte | |
byte schluessel[4]; // Array zum Abspeichern der UID des Schluessels | |
void setup() { | |
Serial.begin(9600); // Serielle Kommunikation mit dem PC | |
while (!Serial); | |
Serial.println("Siehe michaelsarduino.blogspot.de!"); | |
SPI.begin(); // SPI starten | |
mfrc522.PCD_Init(); // RFID Reader starten | |
mfrc522.PCD_DumpVersionToSerial(); // Details des RFID Readers anzeigen | |
schluessel[0] = 1; | |
schluessel[1] = 1; | |
schluessel[2] = 1; | |
schluessel[3] = 1; // Schluessel UID zuruecksetzen | |
pinMode(6, OUTPUT); | |
pinMode(7, OUTPUT); // LED Pins definieren | |
digitalWrite(7, LOW); | |
digitalWrite(6, HIGH); // Rote LED an, Gruene aus | |
Serial.println("Bitte Schluessel in die Naehe bringen zum Definieren!"); | |
} | |
void loop() { | |
if ( ! mfrc522.PICC_IsNewCardPresent()) { // Ueberpruefen ob neue Karte vorhanden | |
return; | |
} | |
if ( ! mfrc522.PICC_ReadCardSerial()) { // Verfuegbare Karte auswaehlen und auslesen | |
return; | |
} | |
for ( uint8_t i = 0; i < 4; i++) { // UID der aktuellen Karte in Array readCard abspeichern | |
readCard[i] = mfrc522.uid.uidByte[i]; | |
} | |
if(schluessel[0] == 1) // Wenn schluessel noch undefiniert aktuelle Karte als | |
{ // als Schluessel im Array schluessel abspeichern | |
digitalWrite(6, HIGH); | |
digitalWrite(7, HIGH); | |
schluessel[0] = readCard[0]; | |
schluessel[1] = readCard[1]; | |
schluessel[2] = readCard[2]; | |
schluessel[3] = readCard[3]; | |
Serial.println("Schluessel definiert!"); | |
readCard[0] = 0; | |
readCard[1] = 0; | |
readCard[2] = 0; | |
readCard[3] = 0; | |
delay(1500); | |
digitalWrite(7, LOW); | |
} | |
if((readCard[0] == schluessel[0])&&(readCard[1] == schluessel[1])&&(readCard[2] == schluessel[2])&&(readCard[3] == schluessel[3])) | |
{ | |
digitalWrite(6, LOW); // Wenn aktuelle Karte gleich Schluessel ist | |
digitalWrite(7, HIGH); | |
Serial.println("Zugriff gewaehrt!"); | |
readCard[0] = 0; | |
readCard[1] = 0; | |
readCard[2] = 0; | |
readCard[3] = 0; | |
delay(1500); | |
digitalWrite(7, LOW); | |
digitalWrite(6, HIGH); | |
} | |
else | |
{ | |
Serial.println("Falscher Schluessel!"); //Falls falsche Karte hingehalten wird | |
digitalWrite(6, LOW); | |
digitalWrite(7, LOW); | |
delay(200); | |
digitalWrite(6, LOW); | |
digitalWrite(7, HIGH); | |
delay(200); | |
digitalWrite(6, HIGH); | |
digitalWrite(7, LOW); | |
delay(200); | |
digitalWrite(6, LOW); | |
digitalWrite(7, HIGH); | |
delay(200); | |
digitalWrite(6, HIGH); | |
digitalWrite(7, LOW); | |
delay(200); | |
digitalWrite(6, LOW); | |
digitalWrite(7, HIGH); | |
delay(200); | |
digitalWrite(6, HIGH); | |
digitalWrite(7, LOW); | |
delay(200); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment