Hola buenas a todos! quería saber como puedo hacer que un led se encienda al acercar una tarjeta RFID, y como apagarlo acercando de nuevo la misma, y asi sucesivamente.
He conseguido hacer que el led se encienda al acercar la tarjeta, pero o se como hacer que se apague.
gracias por ayudarme!!
#include <SPI.h>
#include <MFRC522.h>
const int RST_PIN = 9; // Pin 9 para el reset del RC522
const int SS_PIN = 10; // Pin 10 para el SS (SDA) del RC522
MFRC522 mfrc5221(SS_PIN, RST_PIN); // Crear instancia del MFRC522
const int verde1 = 7;
const int rojo1 = 8;
byte validKey1[4] = { 0x86, 0x67, 0x39, 0x1F }; // codigo de la tarjeta valida
// funcion para escribir el identificador de la tarjeta en serial monitor
void printArray(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], HEX);
}
}
//Función para comparar dos vectores
bool isEqualArray(byte* arrayA, byte* arrayB, int length)
{
for (int index = 0; index < length; index++)
{
if (arrayA[index] != arrayB[index]) return false;
}
return true;
}
int contador = 0;
void setup() {
Serial.begin(9600); // Iniciar serial
SPI.begin(); // Iniciar SPI
mfrc5221.PCD_Init(); // Iniciar MFRC522
pinMode(verde1,OUTPUT);
}
void loop() {
// Detectar tarjeta
//ASIENTO 1:
if (mfrc5221.PICC_IsNewCardPresent()){
//Seleccionamos una tarjeta
if (mfrc5221.PICC_ReadCardSerial()){
// Comparar ID con las claves válidas
if (isEqualArray(mfrc5221.uid.uidByte, validKey1, 4)){
digitalWrite(verde1,HIGH);
Serial.print(F("Card UID:"));
printArray(mfrc5221.uid.uidByte, mfrc5221.uid.size);
contador++;
Serial.println(contador);
delay(500);
}
// Finalizar lectura actual
mfrc5221.PICC_HaltA();
}
delay(250);
}
}
RFID.ino (1.89 KB)