RFID son las siglas de identificación por radiofrecuencia. El módulo RFID puede leer o escribir una pequeña cantidad de datos en una etiqueta RFID pasiva, que se puede utilizar en el proceso de identificación en varios sistemas como el sistema de asistencia, el sistema de seguridad, el sistema de votación, etc. RFID es una tecnología muy conveniente y fácil.
Para leer las tarjetas y etiquetas RFID pasivas, necesitamos un microcontrolador con hardware UART. Si seleccionamos un microcontrolador sin UART, necesitamos implementar el software UART. Aquí estamos usando el microcontrolador PIC PIC16F877A para interconectar RFID. Simplemente leeremos el número de identificación único. de etiquetas RFID y mostrarlo en una pantalla LCD de 16x2.
Módulo RFID y su funcionamiento
En este proyecto, elegimos el módulo RFID EM-18, que es un módulo de tamaño pequeño, de bajo costo y energéticamente eficiente. El módulo RFID EM-18 utiliza una frecuencia RF de 125 KHz para leer etiquetas RFID pasivas de 125 KHz. El módulo EM-18 usa oscilador, demodulador y decodificador de datos para leer datos de una tarjeta pasiva.
Etiqueta RFID
Hay tres tipos de etiquetas RFID disponibles: pasivas, activas o pasivas asistidas por batería. En el mercado se encuentran disponibles diferentes tipos de etiquetas RFID con diferentes tipos de formas y tamaños. Pocos de ellos utilizan frecuencias diferentes para comunicarse. Usaremos tarjetas RFID pasivas de 125 Khz que contienen los datos de identificación únicos. Aquí están la tarjeta RFID y las etiquetas que estamos usando para este proyecto.
Funcionamiento de RFID
Si vemos la hoja de datos (http://www.alselectro.com/files/rfid-ttl-em18.pdf) del Módulo EM-18, podríamos ver la parte trasera del módulo y el circuito de la aplicación:
El módulo utiliza el protocolo de comunicación UART en 9600 baudios. Cuando se introduce una etiqueta de frecuencia válida en el campo magnético del lector EM-18, el transistor BC557 se enciende y el zumbador comenzará a emitir un pitido, también iluminará el LED. Estamos usando un módulo que está fácilmente disponible en el mercado y tiene un circuito completo con un zumbador, un LED y un puerto RS232 adicional.
Aquí está el módulo de placa RFID que estamos usando con nombres de pines. Este módulo también tiene opción de energía adicional.
Una cosa debe tenerse en cuenta que la salida del lector EM-18 usa un nivel lógico de 5V. Podríamos usar otro microcontrolador que use un nivel lógico más bajo, pero en tales casos, se requiere el convertidor de nivel lógico adicional. En algunos casos, el pin UART del microcontrolador de 3.3V es a menudo tolerante a 5V.
La salida UART proporciona datos ASCII de 12 bits. Los primeros 10 bits son el número de etiqueta RFID, que es la identificación única y los dos últimos dígitos se utilizan para la prueba de errores. Estos dos últimos dígitos son el XOR del número de etiqueta. El módulo EM-18 leerá los datos de las etiquetas o tarjetas RFID pasivas de 125 KHz.
Esas etiquetas o ID tienen una matriz de memoria programada de fábrica que almacena el número de ID único. Como son pasivos, por lo que no hay batería presente en la tarjeta o etiquetas, se energizan con el campo magnético del módulo del transceptor de RF. Estas etiquetas RFID se fabrican utilizando el EM4102 CMOS IC, que también está sincronizado por el campo magnético.
Material requerido
Para hacer este proyecto, necesitamos los siguientes elementos:
- PIC16F877A
- 20Mhz de cristal
- Condensador de disco de cerámica de 2 piezas 33pF
- LCD de 16x2 caracteres
- Una placa de pruebas
- Olla preestablecida de 10k
- Resistencia de 4.7k
- Cables de una sola hebra para conectar
- Un adaptador de 5 V
- Módulo RF EM-18
- Zumbador 5V
- Condensador de 100uF y.1uF 12V
- Transistor BC557
- LED
- Resistencia de 2.2k y 470R.
Estamos utilizando la placa del módulo EM-18 con zumbador y led preconfigurados. Por lo tanto, los componentes enumerados del 11 al 15 no son necesarios.
Diagrama de circuito
El esquema es simple; Conectamos LCD a través del puerto RB y conectamos el módulo EM-18 a través del pin UART Rx.
Hemos realizado la conexión en la placa de pruebas según el esquema.
Explicación del código
Como siempre, primero necesitamos establecer los bits de configuración en el microcontrolador pic, definir algunas macros, incluidas las bibliotecas y la frecuencia de cristal. Puede verificar el código de todos los que se encuentran en el código completo que se proporciona al final.
// PIC16F877A Ajustes de bits de configuración // Declaraciones de configuración de la línea de origen 'C' // CONFIG # pragma config FOSC = HS // Bits de selección del oscilador (oscilador HS) # pragma config WDTE = OFF // Bit de habilitación del temporizador de vigilancia (WDT deshabilitado) # pragma config PWRTE = OFF // Bit de habilitación del temporizador de encendido (PWRT deshabilitado) #pragma config BOREN = ON // Bit de habilitación de restablecimiento de bajada (BOR habilitado) #pragma config LVP = OFF // Bajo voltaje (suministro único) Bit de habilitación de programación en serie en circuito (el pin RB3 / PGM tiene función PGM; programación de bajo voltaje habilitada) #pragma config CPD = OFF // Bit de protección de código de memoria EEPROM de datos (protección de código EEPROM de datos desactivada) #pragma config WRT = OFF // Bits de habilitación de escritura de memoria de programa flash (protección de escritura desactivada; el control EECON puede escribir en toda la memoria de programa) #pragma config CP = OFF // Bit de protección de código de memoria de programa flash (protección de código desactivada) # incluir "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Si vemos la función principal llamamos a una función para inicializar el sistema. Inicializamos LCD y UART en esta función.
/ * Esta función es para inicializaciones del sistema. * / void system_init (void) { TRISB = 0x00; // PUERTO B configurado como pin de salida lcd_init (); // Esto inicializará el lcd EUSART1_Initialize (); // Esto inicializará el Eusart }
Ahora, en la función principal , usamos una matriz de 13 bits que es el número RFID. Recibimos cada bit del RFID no. usando EUSART1_Read (); función, que se declara dentro de la biblioteca UART. Después de recibir 12 bits, imprimimos la matriz como una cadena en la pantalla LCD.
void main (void) { recuento de caracteres sin firmar; carácter sin firmar RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Resumen de circuitos"); while (1) { for (cuenta = 0; cuenta <12; cuenta ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Coloca el cursor para la segunda línea que comienza lcd_puts ("ID:"); lcd_puts (RF_ID); } }
A continuación se proporciona el código completo con el video de demostración.
También verifique la interfaz RFID con otro microcontrolador:
Interfaz RFID con MSP430 Launchpad
Interfaz RFID con microcontrolador 8051
Interfaz RFID con Arduino