doorled.ino


1
/*UID lesen und mit gespeicherter vergleichen
2
LEd blau=Leser wartet, Led Rot=vergeigert, Led gün =OK
3
getestet 03.2015*/
4
#include <SPI.h>
5
#include <MFRC522.h>
6
7
#define SS_PIN 9
8
#define RST_PIN 5
9
MFRC522 mfrc522(SS_PIN, RST_PIN);
10
byte soll[4]={
11
  0x81, 0xAA, 0x2C, 0x61};
12
byte inhalt[4];
13
int ledgruen=2;
14
int ledblau=3;
15
int ledrot=4;
16
17
void setup()
18
{
19
  Serial.begin(9600);
20
  Serial.println("Leser bereit !");
21
  Serial.println(" ");
22
  SPI.begin();
23
  mfrc522.PCD_Init();
24
  pinMode(ledrot, OUTPUT);
25
  pinMode(ledblau, OUTPUT);
26
  pinMode(ledgruen, OUTPUT);
27
  digitalWrite(ledblau, HIGH);
28
  digitalWrite(ledrot, HIGH);
29
  digitalWrite(ledgruen, HIGH); 
30
}
31
32
void loop() {
33
  // Look for new cards
34
  digitalWrite(ledblau, LOW);
35
  digitalWrite(ledrot, HIGH);
36
  digitalWrite(ledgruen, HIGH);
37
  if ( ! mfrc522.PICC_IsNewCardPresent())
38
    return;
39
40
  // Select one of the cards
41
  if ( ! mfrc522.PICC_ReadCardSerial())
42
    return;
43
44
  // Show some details of the PICC (that is: the tag/card)
45
  Serial.print("Start ");
46
  digitalWrite(ledblau, HIGH);
47
  digitalWrite(ledrot, LOW);
48
  
49
  Serial.println();
50
  Serial.print("PICC type: ");
51
  byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
52
  Serial.println(mfrc522.PICC_GetTypeName(piccType));
53
54
  // Check for compatibility
55
  if (    piccType != MFRC522::PICC_TYPE_MIFARE_MINI
56
    &&  piccType != MFRC522::PICC_TYPE_MIFARE_1K
57
    &&  piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
58
    Serial.println("This sample only works with MIFARE Classic cards.");
59
    return;
60
  }
61
 
62
  for (byte i = 0; i < 4; i++) {
63
    //Serial.print(mfrc522.uid.uidByte[i],BIN); 
64
    inhalt[i]=(mfrc522.uid.uidByte[i]);
65
  }  
66
  int open=0;
67
  for (byte i = 0; i < 4; i++) {
68
    if (soll[i] == inhalt[i] ){
69
      open =open+1;
70
    } 
71
  }
72
  if (open==4){ 
73
    digitalWrite(ledrot, HIGH);
74
    digitalWrite(ledgruen, LOW);
75
  }
76
  else
77
  { 
78
    digitalWrite(ledrot, LOW);
79
    digitalWrite(ledgruen, HIGH);
80
  }
81
  delay (1000);
82
83
}