domingo, 9 de octubre de 2016

Arduino uno +RFDI522 y Relay

CONTROL DE ACCESO CON TARJETA RFID522 Y SERVO




Pasos a seguir

  1. Unir la tarjeta RFID-RC522 con  Arduino Uno
  2. Unir el resto de las piesas con Arduino Uno
  3. Sketch  Arduino UNO

Conecciones del RFID-RC522 con Arduino UNO

Arduino UNO | RFID-RC522
 Pin 10          SDA
 Pin 13          SCK
 Pin 11          MOSI
 Pin 12          MISO
 -               IRQ
 GND             GND
 Pin9            RST
 3.3V            3.3V

Sketch para  Arduino UNO

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#define SS_PIN 10 // RFID-RC522 SDA
#define RST_PIN 9 // RFID-RC522 RST
const byte servoPin  = 8;  // digital Pin - Servo
const byte buzzerPin = 7;  // digital Pin - Buzzer
Servo myServo;
MFRC522 mfrc522(SS_PIN, RST_PIN);
// Colocar aqui los numeros de tarjetas autorizadas
// Al abrir el monitor dara el numero rechazado primero
long erlaubteKarten[] = { 1011520, 2492530, 171762080 };
byte erlaubteKartenCount = 3;
void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  pinMode(buzzerPin, OUTPUT);
  pinMode(servoPin, OUTPUT);
  myServo.attach(servoPin);
  myServo.write(0); //Servo en lugar inicio
}
void loop() {
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }
  long code=0;
   
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    code=((code+mfrc522.uid.uidByte[i])*10);
  }
  Serial.print(F("Tarjeta reconosida:"));
  Serial.print(code);
  if(PruefeKartenberechtigung(code) == true) {
    Serial.println(F(" [AUTORIZADO]"));
    KarteErkanntSound();
    myServo.write(90);
    delay(500);
    myServo.write(0);
    delay(100);
  } else {
    Serial.println(F(" [SIN AUTORIZACION]"));
    UnbekannteKarteSound();
  }
  delay(2000);
}
boolean PruefeKartenberechtigung(long KartenUUID) {
  boolean erlaubt = false;
   
  for(int i=0; i < erlaubteKartenCount; i++) {
    if(erlaubteKarten[i] == KartenUUID) {
      erlaubt = true;
    }
  }
  return erlaubt;
}
void UnbekannteKarteSound(void) {
  for (byte i=0; i<3; i++) {
    tone(buzzerPin, 500, 150);
    delay(200);
  }
}
void KarteErkanntSound(void) {
  tone(buzzerPin, 1000, 150);
  delay(200);
  tone(buzzerPin, 1500, 150);
  delay(200);
}
Muchas veces al compilar lor sketch presentan error de libreria y descubrí que existen en este caso dos librerias que sirven. Lo malo sucede que al compilar marcan error. Lo solucione buscando la otra libreria.
Me paso con "rfid-master" que dentro estan los archivos "MFRC522.h " y
Libreria "Rfid" donde el archivo que sirve es "RFID.h"

Descubri que ambas librerias sirven. Pero el sketch indicara cual se debe usar. Logicamente debe estar instalada en la carpeta Librerias.



No hay comentarios:

Publicar un comentario