You are on page 1of 9

Función pitido (universal)

Sirve para hacer solo una función pitido (universal)

Sirve para que funcione con las dos opciones, de error o aprobación.

Esta función recibe información del programa para lograr esto

La podemos invocar desde cualquier parte del programa

La función recibe información para poder ejecutarse

FUNCION

void pitido (int tiempo)

digitalWrite (BUZZER, HIGH);

delay (tiempo);

digitalWrite (BUZZER, HIGH);

delay (tiempo);

En el programa cuando llamemos a esta función, debemos llamarla de la sgte manera:

pitido (tiempo en milisegundos que deseamos que suene);

por ejemplo:

delay (500);

delay (1000);

delay (1500);

etc...

La palabra void significa vacía.


Matriz

La matriz está compuesta de filas y columnas de la sgte manera:

En este caso tenemos un total de 21 filas y 4 columnas. Esto puede variar dependiendo del tamaño
en que necesitemos la matriz

___________________________________________________________________________

Lo usamos para comprobar si la tarjeta ya existe en la memoria de la matriz

if(comprobar() == true)
{
Serial.println("ERROR. La tarjeta ya existe. ");
break;
}

________ _______________ ____________


Este código del lector y memorizador de tarjetas, tiene modificación en el pitido
(universal) (hacemos una sola función pitido para poder ocuparla en diferentes partes
del programa y así evitar tener que hacer varias funciones de pitido largo y pitido corto)
y en comparar la tarjeta que vamos a grabar con las que ya están grabadas

#include <deprecated.h>

#include <MFRC522.h>

#include <MFRC522Debug.h>

#include <MFRC522Extended.h>

#include <MFRC522Hack.h>

#include <require_cpp11.h>

#define BUZZER x

#define BTN_ADDCARD x

#define BTN_SHOWCARD x

MFRC522 lector (10, 9);

byte matriz [100] [4];

byte numTarjetas = 0;

void setup()

Serial.begin(9600);

SPI.begin();

lector.PCD_Init ();
pinMode (BUZZER, OUTPUT);

pinMode (BTN_ADDCARD, INPUT_PULLUP);

pinMode (BTN_SHOWCARD, INPUT_PULLUP);

void loop ()

if (digitalRead(BTN_ADDCARD) == LOW)

menu ();

if (digitalRead(BTN_SHOWCARD) == LOW)

imprimirTarjetas();

delay(500); //para el rebote

if ( lector.PICC_IsNewCardPresent() == 1 )

Serial.println("Se acercó una nueva tarjeta");

if (lector.PICC_ReadCardSerial() == 1)

Serial.print("El ID de la tarjeta es: ");

for (int i = 0; i < 4; i++)


{

Serial.print(lector.uid.uidByte[i]);

Serial.print(" ");

Serial.println("");

lector.PICC_HaltA();

if (comprobar() == true)

Serial.println("ACCESO CONCEDIDO");

pitido(100);

else

Serial.println("ACCESO DENEGADO");

pitido(1000);

else

Serial.println("ERROR, reintente");

}
}

boolean comprobar()

for (int i = 0; i < numTarjetas; i++)

if ( matriz[i][0] == lector.uid.uidByte[0] &&

matriz[i][1] == lector.uid.uidByte[1] &&

matriz[i][2] == lector.uid.uidByte[2] &&

matriz[i][3] == lector.uid.uidByte[3] )

return true;

return false;

void menu()

Serial.println("Bienvenido al menu de programación. Por favor, acerque una nueva


tarjeta");

while (true)

if (lector.PICC_IsNewCardPresent() == 1)
{

if (lector.PICC_ReadCardSerial())

if( comprobar() == true)

Serial.println("ERROR. La tarjeta ya existe. ");

break;

for (int i = 0; i < 4; i++)

matriz[numTarjetas][i] = lector.uid.uidByte[i];

numTarjetas++;

lector.PICC_HaltA();

Serial.println("La tarjeta fue grabada con exito.");

imprimirTarjetas();

else

Serial.println("ERROR. NO pudo leerse la tarjeta. Intente nuevamente");

break;

}
}

void imprimirTarjetas()

Serial.println("Las tarjetas guardadas en la memoria son: ");

for (int i = 0; i < numTarjetas; i++)

Serial.print("Tarjeta Nº ");

Serial.print(i);

Serial.print(" : ");

Serial.print( matriz[i][0] );

Serial.print(" ");

Serial.print( matriz[i][1] );

Serial.print(" ");

Serial.print( matriz[i][2] );

Serial.print(" ");

Serial.print( matriz[i][3] );

Serial.println(" ");

}
}

void pitido(int tiempo)

digitalWrite(BUZZER, HIGH);

delay(tiempo);

digitalWrite(BUZZER, LOW);

delay(tiempo);

You might also like