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 | }
|