Kapii_Ornegi
Dependencies: mbed Servo MFRC522 TextLCD keypad
main.cpp@1:ce3de3f1306d, 2019-12-15 (annotated)
- Committer:
- freedaom
- Date:
- Sun Dec 15 07:46:06 2019 +0000
- Revision:
- 1:ce3de3f1306d
- Parent:
- 0:eb13172d8708
Kapi_Uygulamasi
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
freedaom | 0:eb13172d8708 | 1 | #include "mbed.h" |
freedaom | 0:eb13172d8708 | 2 | #include "TextLCD.h" |
freedaom | 0:eb13172d8708 | 3 | #include "Keypad.h" |
freedaom | 0:eb13172d8708 | 4 | #include <string> |
freedaom | 1:ce3de3f1306d | 5 | #include "MFRC522.h" |
freedaom | 0:eb13172d8708 | 6 | |
freedaom | 1:ce3de3f1306d | 7 | #define SIFRE "**123A" // sifreyi kendinize göre değistirebilirsiniz |
freedaom | 1:ce3de3f1306d | 8 | #define uzunluk 6 // girdiğiniz sifre ne kadar uzunsa buraya sayısını giriniz |
freedaom | 0:eb13172d8708 | 9 | |
freedaom | 0:eb13172d8708 | 10 | string sifre= ""; |
freedaom | 0:eb13172d8708 | 11 | uint8_t hata=4; |
freedaom | 0:eb13172d8708 | 12 | |
freedaom | 0:eb13172d8708 | 13 | char key_table[] = { |
freedaom | 0:eb13172d8708 | 14 | '1', '2', '3', 'A', |
freedaom | 0:eb13172d8708 | 15 | '4', '5', '6', 'B', |
freedaom | 0:eb13172d8708 | 16 | '7', '8', '9', 'C', |
freedaom | 0:eb13172d8708 | 17 | '*', '0', '#', 'D' |
freedaom | 0:eb13172d8708 | 18 | }; |
freedaom | 0:eb13172d8708 | 19 | |
freedaom | 0:eb13172d8708 | 20 | Keypad key(PA_12,PA_11,PB_12,PB_2,PB_1,PB_15,PB_14,PB_13); |
freedaom | 0:eb13172d8708 | 21 | TextLCD lcd(PA_0,PA_1,PA_4,PB_0,PC_1,PC_0); // rs, e, d4-d7.. |
freedaom | 0:eb13172d8708 | 22 | |
freedaom | 0:eb13172d8708 | 23 | DigitalOut buzzer(D7); |
freedaom | 0:eb13172d8708 | 24 | Servo servo1(PA_15); |
freedaom | 0:eb13172d8708 | 25 | |
freedaom | 0:eb13172d8708 | 26 | MFRC522 RfChip(PA_7, PA_6, PA_5, PB_6, PC_7);/**/ |
freedaom | 0:eb13172d8708 | 27 | |
freedaom | 1:ce3de3f1306d | 28 | |
freedaom | 1:ce3de3f1306d | 29 | void hataliGiris() |
freedaom | 1:ce3de3f1306d | 30 | { |
freedaom | 1:ce3de3f1306d | 31 | lcd.cls(); |
freedaom | 1:ce3de3f1306d | 32 | lcd.printf("Hatali Giris.."); |
freedaom | 1:ce3de3f1306d | 33 | for(uint8_t a = 10; a > 1; a--) { |
freedaom | 1:ce3de3f1306d | 34 | buzzer=1; |
freedaom | 1:ce3de3f1306d | 35 | wait_ms(50); |
freedaom | 1:ce3de3f1306d | 36 | buzzer=0; |
freedaom | 1:ce3de3f1306d | 37 | wait_ms(10); |
freedaom | 1:ce3de3f1306d | 38 | } |
freedaom | 1:ce3de3f1306d | 39 | buzzer=0; |
freedaom | 1:ce3de3f1306d | 40 | hata--; |
freedaom | 1:ce3de3f1306d | 41 | printf("Hatali Giris.."); |
freedaom | 1:ce3de3f1306d | 42 | wait(3); |
freedaom | 1:ce3de3f1306d | 43 | lcd.cls(); |
freedaom | 1:ce3de3f1306d | 44 | sifre = ""; |
freedaom | 1:ce3de3f1306d | 45 | if(hata == 1) { |
freedaom | 1:ce3de3f1306d | 46 | hata = 4; |
freedaom | 1:ce3de3f1306d | 47 | lcd.printf(" saniye \n bekleyiniz.."); |
freedaom | 1:ce3de3f1306d | 48 | for(uint8_t sure = 60; sure > 0; sure--) { |
freedaom | 1:ce3de3f1306d | 49 | lcd.locate(0,0); |
freedaom | 1:ce3de3f1306d | 50 | lcd.printf("%d ",sure); |
freedaom | 1:ce3de3f1306d | 51 | wait(1); |
freedaom | 1:ce3de3f1306d | 52 | } |
freedaom | 1:ce3de3f1306d | 53 | } |
freedaom | 1:ce3de3f1306d | 54 | } |
freedaom | 1:ce3de3f1306d | 55 | |
freedaom | 0:eb13172d8708 | 56 | int main() |
freedaom | 0:eb13172d8708 | 57 | { |
freedaom | 0:eb13172d8708 | 58 | uint32_t key_num; |
freedaom | 0:eb13172d8708 | 59 | RfChip.PCD_Init();/**/ |
freedaom | 0:eb13172d8708 | 60 | |
freedaom | 0:eb13172d8708 | 61 | Onur: |
freedaom | 0:eb13172d8708 | 62 | |
freedaom | 0:eb13172d8708 | 63 | lcd.cls(); |
freedaom | 0:eb13172d8708 | 64 | lcd.printf("Sifre : "); |
freedaom | 0:eb13172d8708 | 65 | printf("Sifre : "); |
freedaom | 0:eb13172d8708 | 66 | |
freedaom | 0:eb13172d8708 | 67 | while(true) { |
freedaom | 1:ce3de3f1306d | 68 | while ((key_num = key.read()) != 0) { // keypada her basıldığında |
freedaom | 1:ce3de3f1306d | 69 | |
freedaom | 0:eb13172d8708 | 70 | buzzer=1; |
freedaom | 0:eb13172d8708 | 71 | wait_ms(50); |
freedaom | 0:eb13172d8708 | 72 | buzzer=0; |
freedaom | 0:eb13172d8708 | 73 | |
freedaom | 0:eb13172d8708 | 74 | lcd.printf("*"); |
freedaom | 0:eb13172d8708 | 75 | printf("%c", *(key_table + key_num-1)); |
freedaom | 0:eb13172d8708 | 76 | |
freedaom | 1:ce3de3f1306d | 77 | sifre += *(key_table + key_num-1); // keypad deki değerler sifre adlı değişkende toplanıyor |
freedaom | 0:eb13172d8708 | 78 | |
freedaom | 0:eb13172d8708 | 79 | if(uzunluk == sifre.length()) { |
freedaom | 0:eb13172d8708 | 80 | |
freedaom | 1:ce3de3f1306d | 81 | |
freedaom | 1:ce3de3f1306d | 82 | if(sifre == SIFRE) { // eger ki sifremiz dogruysa |
freedaom | 0:eb13172d8708 | 83 | lcd.cls(); |
freedaom | 0:eb13172d8708 | 84 | lcd.printf("Giris Basarili.."); |
freedaom | 0:eb13172d8708 | 85 | printf("Giris Basarili..."); |
freedaom | 0:eb13172d8708 | 86 | wait(3); |
freedaom | 0:eb13172d8708 | 87 | lcd.cls(); |
freedaom | 0:eb13172d8708 | 88 | sifre = ""; |
freedaom | 0:eb13172d8708 | 89 | hata=4; |
freedaom | 0:eb13172d8708 | 90 | goto Onur; |
freedaom | 1:ce3de3f1306d | 91 | } else { // eger sifre hataliysa |
freedaom | 1:ce3de3f1306d | 92 | hataliGiris(); |
freedaom | 0:eb13172d8708 | 93 | goto Onur; |
freedaom | 0:eb13172d8708 | 94 | } |
freedaom | 0:eb13172d8708 | 95 | } |
freedaom | 0:eb13172d8708 | 96 | |
freedaom | 0:eb13172d8708 | 97 | } |
freedaom | 0:eb13172d8708 | 98 | wait(0.2); |
freedaom | 0:eb13172d8708 | 99 | /////////////////////// /* |
freedaom | 0:eb13172d8708 | 100 | if ( ! RfChip.PICC_IsNewCardPresent()) { |
freedaom | 0:eb13172d8708 | 101 | wait_ms(100); |
freedaom | 0:eb13172d8708 | 102 | continue; |
freedaom | 0:eb13172d8708 | 103 | } |
freedaom | 0:eb13172d8708 | 104 | |
freedaom | 0:eb13172d8708 | 105 | if ( ! RfChip.PICC_ReadCardSerial()) { |
freedaom | 0:eb13172d8708 | 106 | wait_ms(100); |
freedaom | 0:eb13172d8708 | 107 | continue; |
freedaom | 1:ce3de3f1306d | 108 | } |
freedaom | 1:ce3de3f1306d | 109 | |
freedaom | 1:ce3de3f1306d | 110 | // kard ID si yazdırılıyor |
freedaom | 0:eb13172d8708 | 111 | printf("Kart ID: "); |
freedaom | 0:eb13172d8708 | 112 | for (uint8_t i = 0; i < RfChip.uid.size; i++) { |
freedaom | 0:eb13172d8708 | 113 | printf(" %X", RfChip.uid.uidByte[i]); |
freedaom | 0:eb13172d8708 | 114 | } |
freedaom | 0:eb13172d8708 | 115 | printf("\n"); |
freedaom | 0:eb13172d8708 | 116 | |
freedaom | 1:ce3de3f1306d | 117 | // kendinize göre dğeiştirmeniz gerekiyor |
freedaom | 0:eb13172d8708 | 118 | if(RfChip.uid.uidByte[0]==0x53 && RfChip.uid.uidByte[1]==0x25 && RfChip.uid.uidByte[2]==0xB6 && RfChip.uid.uidByte[3]== 0x0) { |
freedaom | 0:eb13172d8708 | 119 | lcd.cls(); |
freedaom | 0:eb13172d8708 | 120 | lcd.printf("Giris Basarili.."); |
freedaom | 0:eb13172d8708 | 121 | printf("Giris Basarili...\n"); |
freedaom | 0:eb13172d8708 | 122 | wait(3); |
freedaom | 0:eb13172d8708 | 123 | lcd.cls(); |
freedaom | 0:eb13172d8708 | 124 | sifre = ""; |
freedaom | 0:eb13172d8708 | 125 | hata=4; |
freedaom | 0:eb13172d8708 | 126 | goto Onur; |
freedaom | 0:eb13172d8708 | 127 | } |
freedaom | 1:ce3de3f1306d | 128 | |
freedaom | 1:ce3de3f1306d | 129 | else { // RFID da okunan kart yanlis ise |
freedaom | 1:ce3de3f1306d | 130 | hataliGiris(); |
freedaom | 1:ce3de3f1306d | 131 | goto Onur; |
freedaom | 1:ce3de3f1306d | 132 | } |
freedaom | 1:ce3de3f1306d | 133 | |
freedaom | 1:ce3de3f1306d | 134 | } // while(true) { |
freedaom | 1:ce3de3f1306d | 135 | return 0; |
freedaom | 1:ce3de3f1306d | 136 | } // int main() |