Paso 2: El código y divertirse escanear tarjetas y conseguir sus identificaciones
#define RFID_ENABLE 2 //to RFID permiten (Conecte el pin 2 con el /Enable)
#define CODE_LEN 10 //Max longitud de etiqueta de RFID
¿#define VALIDATE_TAG 1 //should validamos etiqueta?
#define VALIDATE_LENGTH 200 //maximum Lee blanco y negro etiqueta leer y validar
#define ITERATION_LENGTH 2000 / / tiempo, en la EM, dado al usuario para mover la aguja a
#define START_BYTE 0x0A
#define STOP_BYTE 0x0D
etiqueta de Char [CODE_LEN];
void setup() {}
Serial.Begin(2400); frecuencia necesaria porque la frecuencia usada en el módulo lector de RFID
pinMode(RFID_ENABLE,OUTPUT);
}
void loop() {}
enableRFID();
getRFIDTag();
{if(isCodeValid())}
disableRFID();
sendCode();
Delay(ITERATION_LENGTH);
} else {}
disableRFID();
Serial.println ("Error: no pudo completar el proceso!");
}
Serial.Flush();
clearCode();
}
/*
Despeja el espacio de memoria para la etiqueta de 0s.
*/
void clearCode() {}
para (int i = 0; i < CODE_LEN; i ++) {}
etiquetas [i] = 0;
}
}
/*
Envía la etiqueta a la computadora.
*/
void sendCode() {}
Serial.Print("tag:");
para (int i = 0; i < CODE_LEN; i ++) {}
Serial.Print(TAG[i]);
}
}
/*
Funciones RFID
*/
void enableRFID() {}
digitalWrite (RFID_ENABLE, bajo);
}
void disableRFID() {}
digitalWrite (RFID_ENABLE, alto);
}
/*
Bloqueo de función, espera y recibe la etiqueta de RFID.
*/
void getRFIDTag() {}
next_byte de bytes;
while(serial.Available() < = 0) {}
Si ((next_byte = Serial.read()) == START_BYTE) {}
bytesread byte = 0;
while(bytesread < CODE_LEN) {}
if(serial.Available() > 0) {//wait para el siguiente byte
Si ((next_byte = Serial.read()) == STOP_BYTE) break;
etiqueta [bytesread ++] = next_byte;
}
}
}
}
/*
Espera la siguiente etiqueta entrante ver si coincide con
la etiqueta actual.
*/
Boolean isCodeValid() {}
next_byte de bytes;
int cuenta = 0;
mientras que (Serial.available() < 2) {//there es ya un STOP_BYTE en tampón
Delay(1); probablemente no un milisegundo muy puro
Si (cuenta ++ > VALIDATE_LENGTH) devuelven el valor false;
}
Serial.Read(); Tire a la basura extra STOP_BYTE
Si ((next_byte = Serial.read()) == START_BYTE) {}
byte bytes_read = 0;
mientras que (bytes_read < CODE_LEN) {}
Si (Serial.available() > 0) {//wait para el siguiente byte
Si ((next_byte = Serial.read()) == STOP_BYTE) break;
Si (tag [bytes_read ++]! = next_byte) devuelven el valor false;
}
}
}
verdaderas;
}
¡ Disfruta la exploración de los objetos! Me divertí demasiado! Es un módulo muy cool! Cuando el lector espera una etiqueta de RFID y el LED es rojo. Mira algunos de mis otros proyectos en