Advertisement
alveoten

Untitled

May 23rd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.43 KB | None | 0 0
  1. /**
  2.   ACCENSIONE LED CON RFID
  3.   Per maggiori info: www.progettiarduino.com
  4.   Importante, collegare il lettore RFID ai pin di Arduino come segue:
  5.   MOSI: Pin 11 / ICSP-4
  6.   MISO: Pin 12 / ICSP-1
  7.   SCK: Pin 13 / ISCP-3
  8.   SDA: Pin 10
  9.   RST: Pin 9
  10. */
  11. #include <SPI.h>
  12. #include <RFID.h>
  13. #include <EEPROM.h>
  14.  
  15. int val = 0;
  16.  
  17. #define SS_PIN 10
  18. #define RST_PIN 9
  19.  
  20. // Codice della chiave master.
  21. #define masnum0 55
  22. #define masnum1 62
  23. #define masnum2 46
  24. #define masnum3 131
  25. #define masnum4 164
  26.  
  27. #define pulsante 5
  28. #define pistone 3
  29.  
  30. #define pausa 1000 // Costante tempo
  31.  
  32. RFID rfid(SS_PIN, RST_PIN);
  33.  
  34. boolean ledOn = 0; // Variabile Led acceso
  35. boolean stato = 0; // Variabile stato
  36. int ledState = 0;  // Variabile stato led
  37.  
  38. int sernum0;
  39. int sernum1;
  40. int sernum2;
  41. int sernum3;
  42. int sernum4;
  43.  
  44. bool need_rfid = false;
  45.  
  46. void setup()
  47. {
  48.   Serial.begin(9600);   //Apriamo la comunicazione con il monitor seriale
  49.   SPI.begin();
  50.   rfid.init();
  51.   pinMode(3, OUTPUT);
  52.   pinMode(pulsante, INPUT);
  53.   Serial.println("Accensione led con RFID Pronto");
  54.  
  55. }
  56.  
  57.  
  58. void loop() {
  59.  
  60.  if(need_rfid == false){ //condizione di partenza si entra solo se non è già stato premuto il pulsante
  61.     if( digitalRead(pulsante) == HIGH ){
  62.       //fai quello che devi fare col pistone
  63.       digitalWrite(pistone, HIGH);
  64.  
  65.       unsigned long timeout_start = millis();
  66.       delay(100); //sperando abbia fatto debounce nel frattempo
  67.       while(digitalRead(pulsante) == HIGH){
  68.         if(millis()-timeout_start > 10000){
  69.           break;
  70.         }
  71.         delay(100); //debounce
  72.       }
  73.  
  74.       digitalWrite(pistone, LOW);
  75.       need_rfid = true;
  76.     }
  77.   }
  78.  
  79.   if(need_rfid && digitalRead(pulsante){
  80.     //leggi da rfid
  81.     if (rfid.isCard()) {
  82.       if(rfid.readCardSerial()){
  83.         sernum0 = rfid.serNum[0];
  84.         sernum1 = rfid.serNum[1];
  85.         sernum2 = rfid.serNum[2];
  86.         sernum3 = rfid.serNum[3];
  87.         sernum4 = rfid.serNum[4];
  88.         // Se il seriale letto corrisponde con il seriale Master
  89.         // attiva o disattiva la modalita Memorizzazione chiavi
  90.         // e in più visualizza l'elenco della chiavi salvate...
  91.         if (sernum0 == masnum0
  92.             && sernum1 == masnum1
  93.             && sernum2 == masnum2
  94.             && sernum3 == masnum3
  95.             && sernum4 == masnum4) {
  96.           Serial.print("chiave giusta ");
  97.           need_rfid = false;
  98.         }
  99.       }
  100.     }
  101.   }//need_rfid
  102.  
  103. }//loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement