RFID kart okuyucu kullanimi. MFRC522
Dependencies: mbed MFRC522 TextLCD keypad
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 }
Generated on Wed Jul 20 2022 20:26:25 by
1.7.2
Marvas