RFID kart okuyucu kullanimi. MFRC522

Dependencies:   mbed MFRC522 TextLCD keypad

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001  #include "mbed.h"
00002  #include "MFRC522.h"
00003 #include "keypad.h"
00004 #include "TextLCD.h"
00005  #define SPI_MOSI    D4
00006  #define SPI_MISO    D5
00007  #define SPI_SCLK    D3
00008  #define SPI_CS      A0//sda pin durumu farketmiyor.
00009  #define MF_RESET   A1//sda pin durumu farketmiyor.
00010 char sifre[4],sayac=0;
00011 
00012  Serial     pc(USBTX, USBRX);
00013 TextLCD lcd(PB_13, PB_14, PB_15, PB_1, PB_2, PB_12); // rs, e, d4-d7 pin bağlantıları
00014 
00015 char Keytable[] = { '1', '2', '3', 'A',
00016 '4', '5', '6', 'B',
00017 '7', '8', '9', 'C',
00018 '*', '0', '#', 'D'
00019 };
00020 
00021 uint32_t cbAfterInput(uint32_t index) {
00022 wait_ms(400);
00023 
00024 
00025 sifre[sayac]=Keytable[index];
00026  lcd.printf("*");
00027 
00028 if(sayac==3)
00029 {
00030 if(sifre[0]=='4' && sifre[1]=='5' && sifre[2]=='6' && sifre[3]=='B')
00031 {
00032      lcd.cls();
00033     pc.printf("Giris Basarili \n");
00034     lcd.printf("Giris Basarili");
00035     wait(3);
00036     lcd.cls();
00037     sayac=-1;
00038     for(char x=0;x<4;x++)
00039     {
00040         sifre[x]=0;
00041         }
00042     }
00043     else
00044     {
00045            lcd.cls();
00046           pc.printf("Giris Basarisiz \n");
00047     lcd.printf("Giris Basarisiz");
00048     wait(3);
00049     lcd.cls();
00050     sayac=-1;
00051     for(char x=0;x<4;x++)
00052     {
00053         sifre[x]=0;
00054         }
00055         }
00056     }
00057  sayac++;
00058 return 0;
00059 }
00060 
00061  MFRC522    RfChip   (SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS, MF_RESET);
00062 
00063  int main(void) {
00064    Keypad keypad(D13, D12, D11, D10, D9, D8, D7, D6);
00065 keypad.CallAfterInput(&cbAfterInput);
00066 keypad.Start();
00067    pc.baud(250000);
00068 
00069    // Init. RC522 Chip
00070    RfChip.PCD_Init();
00071 
00072    while (true) {
00073      // Look for new cards
00074      if ( ! RfChip.PICC_IsNewCardPresent())
00075      {
00076        wait_ms(100);
00077     
00078        continue;
00079      }
00080 
00081 
00082      // Select one of the cards
00083      if ( ! RfChip.PICC_ReadCardSerial())
00084      {
00085        wait_ms(100);
00086  
00087        continue;
00088      }
00089 
00090 
00091      // Print Card UID
00092      printf("Card UID: ");
00093      for (uint8_t i = 0; i < RfChip.uid.size; i++)
00094      {
00095        pc.printf(" %X", RfChip.uid.uidByte[i]);
00096 
00097      }
00098      printf("\n\r");
00099 if(RfChip.uid.uidByte[0]==0x76 && RfChip.uid.uidByte[1]==0xEC
00100 && RfChip.uid.uidByte[2]==0xCA && RfChip.uid.uidByte[3]==0x1F)
00101 {
00102      pc.printf("Giris Basarili \n");
00103      }
00104      // Print Card type
00105      uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
00106      printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
00107      wait_ms(500);
00108    }
00109  }