Advertisement
martinius96

Untitled

Oct 4th, 2018
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.00 KB | None | 0 0
  1. #include <LiquidCrystal_I2C.h>
  2. #include <SPI.h>
  3. #include <MFRC522.h>
  4. #define RST_PIN         9          // Configurable, see typical pin layout above
  5. #define SS_1_PIN        10         // Configurable, take a unused pin, only HIGH/LOW required, must be diffrent to SS 2
  6. #define NR_OF_READERS   1
  7. byte ssPins[] = {SS_1_PIN};
  8. MFRC522 mfrc522[NR_OF_READERS];   // Create MFRC522 instance.
  9. LiquidCrystal_I2C lcd(0x27, 16, 2);
  10. unsigned long kod;
  11. boolean run = false;
  12. boolean run2 = false;
  13. long timer = 0; //The timer
  14. int second = 0;
  15. int minute = 0;
  16. int tenth = 0;
  17. int hour =0;
  18. int second2 = 0;
  19. int minute2 = 0;
  20. int tenth2 = 0;
  21. int hour2 =0;
  22. const int rfrele = 3;
  23. const int gdprele = 4;
  24. const int buzzer = 5;
  25. void setup() {
  26.   Serial.begin(9600);
  27.   SPI.begin();
  28.    lcd.begin();
  29.   lcd.backlight();
  30.   pinMode(rfrele,OUTPUT);
  31.   pinMode(gdprele,OUTPUT);
  32.   pinMode(buzzer,OUTPUT);
  33.     for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) {
  34.     mfrc522[reader].PCD_Init(ssPins[reader], RST_PIN); // Init each MFRC522 card
  35.     Serial.print(F("Reader "));
  36.     Serial.print(reader);
  37.     Serial.print(F(": "));
  38.     mfrc522[reader].PCD_DumpVersionToSerial();
  39.   }
  40.  
  41.   lcd.setCursor(0,0);
  42.   lcd.print("RF  00:00:00");
  43.    lcd.setCursor(0,1);
  44.    lcd.print("GD 00:00:00");
  45. }
  46.  
  47. void tickClock() {
  48.   if((timer - millis()/100) >= 100 || timer == 0) {
  49.     tick();
  50.     tick2();
  51.     timer = millis()/100;
  52.   }
  53.  
  54. }
  55.  
  56. void loop() {
  57.    for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) {
  58.     if (mfrc522[reader].PICC_IsNewCardPresent() && mfrc522[reader].PICC_ReadCardSerial()) {
  59.       Serial.print(F("Reader "));
  60.       Serial.print(reader);
  61.       // Show some details of the PICC (that is: the tag/card)
  62.       Serial.print(F(": Card UID:"));
  63.       dump_byte_array(mfrc522[reader].uid.uidByte, mfrc522[reader].uid.size);
  64.       Serial.println();
  65.       Serial.print(F("PICC type: "));
  66.       MFRC522::PICC_Type piccType = mfrc522[reader].PICC_GetType(mfrc522[reader].uid.sak);
  67.       Serial.println(mfrc522[reader].PICC_GetTypeName(piccType));
  68.  
  69.       // Halt PICC
  70.       mfrc522[reader].PICC_HaltA();
  71.       // Stop encryption on PCD
  72.       mfrc522[reader].PCD_StopCrypto1();
  73.     } //if (mfrc522[reader].PICC_IsNewC
  74.   } //for(uint8_t reader
  75.   if(kod==4294957290){
  76.      
  77.        digitalWrite(rfrele, HIGH);
  78.              digitalWrite(gdprele, LOW);
  79.       run = false;
  80.       run2 = true;
  81.         }else if(kod==17691){
  82.        
  83.            digitalWrite(rfrele, LOW);
  84.              digitalWrite(gdprele, HIGH);
  85.           run = true;
  86.       run2 = false;
  87.           }else if(kod==12619){
  88.            
  89.              digitalWrite(rfrele, HIGH);
  90.              digitalWrite(gdprele, HIGH);
  91.             run = false;
  92.       run2 = false;
  93.             }else if(kod==26377){
  94.            
  95.              digitalWrite(rfrele, HIGH);
  96.              digitalWrite(gdprele, HIGH);
  97.        second = 0;
  98.  minute = 0;
  99.  tenth = 0;
  100.  hour =0;
  101.  second2 = 0;
  102.  minute2 = 0;
  103.  tenth2 = 0;
  104.  hour2 =0;
  105.  updateLCD();
  106.  updateLCD2();
  107.   run = false;
  108.       run2 = false;
  109.               }
  110.   tickClock(); //Start ticking the clock
  111. }
  112.  
  113. void tick() {
  114.   if(run) {
  115.     updateLCD();
  116.    
  117.    
  118.    
  119.     if(tenth == 9) {
  120.       tenth = 0;
  121.      
  122.       if(second == 59) {
  123.         second = 0;
  124.         minute++;
  125.        
  126.       }else {
  127.         second++;
  128.       }
  129.      
  130.       if(minute == 60) {
  131.         minute = 0;
  132.         hour++;
  133.        
  134.       }
  135.     } else {
  136.     tenth++;
  137.     }
  138.   }
  139. }
  140. void tick2() {
  141.   if(run2) {
  142.     updateLCD2();
  143.    
  144.    
  145.    
  146.     if(tenth2 == 9) {
  147.       tenth2 = 0;
  148.      
  149.       if(second2 == 59) {
  150.         second2 = 0;
  151.         minute2++;
  152.        
  153.       }else {
  154.         second2++;
  155.       }
  156.      
  157.       if(minute2 == 60) {
  158.         minute2 = 0;
  159.         hour2++;
  160.        
  161.       }
  162.     } else {
  163.     tenth2++;
  164.     }
  165.   }
  166. }
  167. void updateLCD() {
  168.    lcd.setCursor(4,0);
  169.  if(hour < 10) {      // If hour does not have 2 digits
  170.     lcd.print("0");
  171.   }
  172.    lcd.print(hour, DEC);
  173.   lcd.print(":");
  174.   if(minute < 10) {      // If hour does not have 2 digits
  175.     lcd.print("0");
  176.   }
  177.   lcd.print(minute, DEC);
  178.   lcd.print(":");
  179.  
  180.   if(second < 10) {    // If minute does not have 2 digits
  181.     lcd.print("0");
  182.   }
  183.   lcd.print(second, DEC);
  184.   //
  185.  
  186. }
  187. void updateLCD2() {
  188.   lcd.setCursor(4,1);
  189.   if(hour2 < 10) {      // If hour does not have 2 digits
  190.     lcd.print("0");
  191.   }
  192.    lcd.print(hour2, DEC);
  193.   lcd.print(":");
  194.   if(minute2 < 10) {      // If hour does not have 2 digits
  195.     lcd.print("0");
  196.   }
  197.   lcd.print(minute2, DEC);
  198.   lcd.print(":");
  199.  
  200.   if(second2 < 10) {    // If minute does not have 2 digits
  201.     lcd.print("0");
  202.   }
  203.   lcd.print(second2, DEC);
  204.  
  205. }
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218. void dump_byte_array(byte *buffer, byte bufferSize) {
  219.   for (byte i = 0; i < bufferSize; i++) {
  220.  
  221.   }
  222.   kod = 10000*buffer[4]+1000*buffer[3]+100*buffer[2]+10*buffer[1]+buffer[0];  
  223.     tone(buzzer, 4000, 100);
  224.   Serial.println("Zaznamenany kod karty: ");
  225.   Serial.println(kod);
  226. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement