Hallo,
ich möchte mit einem Arduino und den RFID-RC522 die ID eines RFID-Chips
ermitteln und ausgeben lassen. dazu habe ich mir eine Funktion
geschrieben:
1 | ...
|
2 | int * getID(){
|
3 | int ID[mfrc522.uid.size];
|
4 | for(byte i=0; i<mfrc522.uid.size; i++){
|
5 | ID[i] = mfrc522.uid.uidByte[i];
|
6 | Serial.print(ID[i],HEX);
|
7 | Serial.print(" ");
|
8 | }
|
9 | Serial.println(" ");
|
10 | return ID;
|
11 | }
|
12 |
|
13 | void loop(){
|
14 | // Look for new cards
|
15 | if(!mfrc522.PICC_IsNewCardPresent()){ // Wenn eine Karte in Reichweite ist
|
16 | return; // gehe weiter...
|
17 | }
|
18 | // Select one of the cards
|
19 | if(!mfrc522.PICC_ReadCardSerial()){ // Wenn ein RFID-Sender ausgeählt wurde
|
20 | return; // gehe weiter...
|
21 | }
|
22 | Serial.println("Please Enter the Number what you want to do.");
|
23 | Serial.println("1. get Chip-ID");
|
24 | Serial.println("2. exit");
|
25 | while(!Serial.available()){
|
26 | }
|
27 | if(Serial.available()){
|
28 | if (Serial.read() == '1'){
|
29 | int *ChipID;
|
30 | ChipID = getID();
|
31 | Serial.print("Die ID des RFID-TAGS lautet: ");
|
32 | //for(byte i=0; i<mfrc522.uid.size; i++){
|
33 | for(byte i=0; i<mfrc522.uid.size; i++){
|
34 | Serial.print(ChipID[i],HEX);
|
35 | Serial.print(" ");
|
36 | }
|
37 | }
|
38 | else if(Serial.read() == '2'){
|
39 | mfrc522.PICC_HaltA(); // Halt PICC
|
40 | mfrc522.PCD_StopCrypto1();// Stop encryption on PCD
|
41 | }
|
42 | }
|
43 | Serial.println(" ");
|
44 | }
|
Die Ausgabe in der Funktin getID() zeigt mir die richtigen Werte an (94
A 3B 529. In der loop-Funktion, kommt allerdings ganz andere Werte an
(282 23 2F30 0). Was habe ich da falsch gemacht?
gruß