quinta-feira, 2 de julho de 2015

RFID com arduino mega, aqui funciona!!!

Montei um arduino mega com o módulo RFID, que permite ligar um relé ao passar o cartão correto e mostra as informações no display 16x2 serial.







Segue a pinagem de deve ser usada para o MEGA
  MOSI  D51  
  MISO  D50  
  SCK    D52  
  SS       D53


segue o sketch
//==============================================
//Sketch do RFID com arduino mega
//==============================================
#include <SPI.h>
#include <Wire.h> 
#include <RFID.h>
#include <LiquidCrystal_I2C.h>
#define RST 9
#define SS 53
RFID rfid(SS, RST);
LiquidCrystal_I2C lcd(0x27,16,2);
int porta_rele1 = 2;

//==============================================
//Aqui coloquei minha logo que ficará no canto direito do display
//==============================================
byte a[8]= {B11111,B11111,B11000,B11111,B11111,B00000,B00000,B00000,};
byte b[8]= {B11111,B11111,B10001,B11011,B11011,B11011,B11111,B11111,};
byte c[8]= {B11111,B11111,B00011,B11111,B11111,B00000,B00000,B00000,};
byte d[8]= {B11111,B11011,B11011,B11011,B11011,B11011,B11011,B11111,};

void setup()
  pinMode(porta_rele1, OUTPUT); 
  digitalWrite(porta_rele1, LOW);
  lcd.init(); // initialize the lcd 
  lcd.backlight();
  SPI.begin(); 
  rfid.init();
  lcd.createChar(1, a); 
  lcd.createChar(2, b); 
  lcd.createChar(3, c); 
  lcd.createChar(4, d); 
  
  lcd.setCursor(13,0); //Coloca o cursor na coluna 13, linha 0
  lcd.write(1); //Escreve o simbolo 
  lcd.setCursor(14,0); //Coloca o cursor na coluna 14, linha 0
  lcd.write(2); //Escreve o simbolo 
  lcd.setCursor(15,0); //Coloca o cursor na coluna 15, linha 0
  lcd.write(3); //Escreve o simbolo 
  lcd.setCursor(14,1); //Coloca o cursor na coluna 14, linha 1
  lcd.write(4); //Escreve o simbolo

}
void loop()
{   
   String conteudo= "";
    if (rfid.isCard()) 
    {
//mude aqui com o numero do cartão que quer que ligue o relé
        if (rfid.readCardSerial()&& rfid.serNum[0]==157 && rfid.serNum[1]==25 && rfid.serNum[2]==144 && rfid.serNum[3]==85 && rfid.serNum[4]==65)
        { 
        lcd.setCursor(0,0);     
        lcd.print("Reconhecido ");
          lcd.setCursor(0,1);     
          lcd.print("Liga Rele ");
          
          digitalWrite(porta_rele1, HIGH);
          delay (3000);
          digitalWrite(porta_rele1, LOW);
          lcd.setCursor(0,0);     
          lcd.print("PASSE      ");
          lcd.setCursor(0,1);     
          lcd.print("O CARTAO ");
        }
        else
        { 
          lcd.setCursor(0,0);
          lcd.print("Recusado    ");
          lcd.setCursor(0,1);
          lcd.print("            ");
          delay (2000);
          lcd.setCursor(0,0);
          lcd.print("PASSE      ");
          lcd.setCursor(0,1);     
          lcd.print("O CARTAO ");
        }
    }
    rfid.halt();
  delay(10);
}




2 comentários: