Sensor de Huella Capacitivo FPC1020A con Arduino

El sensor de huella capacitivo FPC1020A funciona mediante un protocolo serial, es compatible con Arduino, Raspberry, ESP32y Freedom. Los voltajes de alimentación son compatibles con 3V/5V. En la Imagen 1, se puede observar el sensor FPC1020A. También podemos decir que es un módulo de bajo consumo de energía diseñado para tablets y teléfonos inteligentes. También a diferencia de un sensor de huella por imagen como el 071405, este módulo no permite el uso de imágenes para la comparación de la huella, sino que la “imagen” la forma mediante pequeñísimos capacitores, lo cual hace muy difícil su hackeo. Aunque cabe la posibilidad de que con un molde y un material especial se pudiese lograr, tal como indica este artículo

Sensor FPC1020
Imagen 1. Sensor de huella capactivio FPC1020A

Pines del sensor FPC1020A

El sensor capacitivo de huella opera mediante 4 pines de conexión. Esto es, 2 pines para alimentación VCC y GND y 2 pines para el control mediante el puerto serial RX y TX. El voltaje de alimentación para este sensor está probado a 5VDC y 3.3VDC. En contraste y una advertencia es el no conectar una alimentación de 5VDC y conectarlo a un sistema con voltaje lógico de 3.3V porque podría dañar al sistema digital. Finalmente en la Imagen 2, se muestran los pines de conexión. 


Sensor de Huella FPC1020A
Imagen 2. Pines de conexión del sensor FPC1020A.

Características del sensor de huella capacitivo FPC1020A

  • Calidad de imagen 3D superior.
  • Resolución 508 dpi.
  • Imagen de 192 x 192 pixeles de 8 bits.
  • Rango de ESD extendido de 30 kV.
  • Puerto serial.
    • 19200 BAUD por default.
    • 9600, 19200, 38400, 57600, 115200. 
  • Voltaje de alimentación 5VDC.
  • Corriente de operación a 5VDC:  57mA aproximadamente .
  • Corriente de operación a 3.3VDC: 45mA  .
  • Nivel de seguridad ajustable 1-9, nivel predeterminado 5 .
  • 150 huellas dactilares (no probado). 
  • Temperatura de funcionamiento: -10 °C – 60 °C
  • Humedad relativa: 20%- 80%
  • Tasa falsa: 0.0001%
  • Tasa de rechazo: 0.001%

Funcionamiento con Arduino

El sensor de huella funciona mediante el puerto serial. Se requiere de dos funciones principales, una que permita enviar un conjunto de bytes que representan al comando. La trama de bytes esta inicia y finaliza con el valor en hexadecimal 0xF5. También dentro de la trama se incluyen un byte que mediante una operación lógica XOR permite a la trama verificar posibles errores en la transmisión o en la recepción. El siguiente código es una traducción e interpretación del código del siguiente enlace

Al final de este tutorial encontrarás el código de Arduino para utilizar el sensor de huella capacitivo FPC1020. Por lo tanto en el código existen 4 funciones principales:

  • uint8_t  obtenerUsuariosRegistrados( ) . Esta función retorna 0 si se ejecuta correctamente y 1 si hubo algún error en la comunicación. Dentro del paquete de datos recibidos se encuentra codificado el número de usuarios que ya se encuentran registrados en el sensor. Estos usuarios se guardan y permanecen en la memoria a pesar de que se quite la alimentación. Los usuarios registrados se guardan en el vector de recepción en elemento número 4, es decir en la posición 3 del vector. 
  • uint8_t agregarUsuario(uint8_t usuarioIDNumero, uint8_t usuarioPermiso) . Al igual que la función anterior retorna 0 si se ejecutó correctamente. Los parámetros de entrada es el número de usuario que se desea almacenar. Hay que tener en cuenta que podemos sobreescribir usuarios, por lo tanto esta función se utiliza en conjunto con la función obtenerUsuariosRegistrados, para estar indicando el siguiente usuario a guardar. El proceso toma 9 segundos y en cada parte del proceso se imprime en la terminal el un carácter ‘.’ para indicar al usuario que todo sigue bien. 
  • uint8_t buscarHuella(void) . Busca en la memoria la huella que se encuentra en el sensor, si alguna huella coincide retorna en la posición 4 del vector de datos recibidos el número 1, y en la posición 3 el usuario al que corresponde la huella. Si la huella no coincide con alguna registrada, regresará el valor 5. 
  • uint8_t borrarTodosLosUsuarios() . Borra a todos los usuarios registrados en el sensor. 

Código de Arduino

A continuación presentamos el codigo de Arduino para el sensor de huella capacitivo.

Autor: Dr. Rubén Estrada Marmolejo

Fecha de creación: 4 de Diciembre del 2020

Guadalajara, Jalisco, México.

Versión en PDF:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *