#include <MFRC522.h>
#include <LiquidCrystal_I2C.h>
#define SS_PIN 10
#define RST_PIN 9
#define beep_pin 8
#define green_pin 7
#define red_pin 6
MFRC522 mfrc522(SS_PIN, RST_PIN); // Creamos Sensor De Tarjeta MFRC522 Instancia
LiquidCrystal_I2C lcd(0x27,16,2); // Creamos Pantalla LCD Instancia
void setup()
{
Serial.begin(9600); // Initiate a serial communication
pinMode(beep_pin,OUTPUT);
digitalWrite(beep_pin,LOW);
pinMode(green_pin,OUTPUT);
digitalWrite(green_pin,LOW);
pinMode(red_pin,OUTPUT);
digitalWrite(red_pin,LOW);
lcd.begin(16, 2);
lcd.setCursor(3, 1);
lcd.backlight();
lcd.print("Bienvenido!!");
lcd.setCursor(0, 0);
lcd.print("Programa Listo");
delay(1500);
lcd.clear();
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
Serial.println("Acerca la tarjea al sensor porfavor...");
Serial.println();
}
void loop()
{
digitalWrite(beep_pin, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pase La Tarjeta");
lcd.setCursor(0, 1);
lcd.print("Porfavor....");
delay(300);
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
Serial.print("UID tag :");
String content= "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "B3 4F BB 20") //change here the UID of the card/cards that you want to give access
{
digitalWrite(beep_pin,HIGH);
lcd.setCursor(0, 0);
lcd.print("ID : ");
lcd.print(content.substring(1));
lcd.setCursor(0, 1);
lcd.print("Acceso Autorizado");
Serial.println("Acceso Autorizado");
digitalWrite(green_pin, HIGH);
delay(700);
delay(700);
digitalWrite(green_pin, LOW);
}
else {
digitalWrite(beep_pin,HIGH);
lcd.setCursor(0, 0);
lcd.print("ID : ");
lcd.print(content.substring(1));
lcd.setCursor(0, 1);
lcd.print("Accesso Denegado");
Serial.println(" Accesso Denegado");
digitalWrite(red_pin, HIGH);
delay(700);
delay(700);
digitalWrite(red_pin, LOW);
}
}
Tengo este codigo que NO ES DE MI AUTORIA, es sacado de un video en youtube solo hice unas cuantas modificaciones, pero al momento de conectar la placa arduino al PC, no lee los tags, se demora demasiado y hay que "rogarle" para que pueda empezar a funcionar, pero una vez lee este funciona de manera adecuada hasta que se desconecta, y al volver a conectarse no lee. Espero me puedan ayudar graciasss :b
Por favor adjunta el código de acuerdo a las Normas del foro, punto 7, y usa la opción de Autoformato de la IDE antes de volver a copiar y pegar el código para facilitarnos la lectura, es para tu propio beneficio.
Por otro lado, ¿qué es lo que esperas de estas 2 sentencias
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
?
return no se utiliza en ese contexto, se usa en funciones que deben retornar algún valor (o no).
Cuando prendo el arduino UNO, En el monitor aparece el mensaje que tengo destinado a la espera de la lectura que es "Pase la tarjeta porfavor..." y tambien este mismo mensaje en la pantalla lcd, pero al acercar la tarjeta con tecnologia RFID o el tag no lee
Agregue este código al final de la setup() y escriba el resultado:
bool result = mfrc522.PCD_PerformSelfTest(); // perform the test
Serial.println(F("-----------------------------"));
Serial.print(F("Result: "));
if (result)
Serial.println(F("OK"));
else
Serial.println(F("DEFECT or UNKNOWN"));
Serial.println();
Las librerías tienen ejemplos. Los ejemplos en general son eficientes.
Porque no empiezas con un ejemplo que responda con agilidad y luego lo vas mejorando?
He descubierto que al conectarlo con el adaptador a la luz o corriente eléctrica el codigo funciona y lee correctamente, pero al estar con la usb al pc no, ¿Alguna posible respuesta a esto?
I have discovered that when connecting it with the adapter to the light or electric current the code works and reads correctly, but when it is with the usb to the pc it does not, any possible answer to this?
Moderador
Porque pones una versión en inglés de tus respuestas en los post #9 y #10?
Estamos en el foro en español. No hace falta poner nada traducido al inglés, salvo que sea una información de un datasheet.
Si no subes un esquema al menos lista que pines de una placa tienes conectados con los pines de la otra porque preguntando siempre lo mismo no van a cambiar las respuestas.