RX-30 Finger Print Module Device Interfacing

     Many of  you have must heard about the finger print sensor which actually a nice way to provide security.Here  i have given the interfacing of the R30-X finger print sensor module with  ARM LPC2148 board but the basics remains same for all the micro-controllers.

    The first thing for interfacing the sensor with the controller is the handshaking,in which the controller first sends a signal or hex codes to the sensor and it acknowledges .After handshaking only the controller can talk to the sensor.

unsigned char Message[16] = {0XEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X07,0X13,0X00,0X00,0X00,0X00,0X00,0X1B};

   This line of commands are the first to be sent to the sensor so as to start the communication.I have given the complete code to communicate with the LPC 2148 below.

Code:


#include
#include "Serial.h"
#include "Utility.h"
#include "LCD4.h"
#include "Glcd.h"

unsigned char Message[16] = {0XEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X07,0X13,0X00,0X00,0X00,0X00,0X00,0X1B};
unsigned char ack[12]={0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,};
unsigned char gim[12]={0XEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X03,0X01,0X00,0X05};
unsigned char uim[12]={0XEF,0X01,0XFF,0XFF,0XFF,0XFF,0X01,0X00,0X03,0X0A,0X00,0X0E};
int main (void)
{ int i;
PINSEL0 = 0;
PINSEL1 = 0;
PINSEL2 &= 0x0000000C;
PINSEL2 |= 0x00000030;
DelayProc(0.2 * CCLOCK);

LCD4_init(&IOPIN0, 20/*D4*/, 12/*RS*/, 14/*E*/);
UART1_init(9600/*bps*/, 15000/*kHz*/,length_8_bit, stop_bit_1, parity_disable, parity_odd);
UART0_init(9600/*bps*/, 15000/*kHz*/, length_8_bit, stop_bit_1, parity_disable, parity_odd);


for(i=0;i<16;i++)
{
UART1_sendchar(Message[i]);

}
for(i=0;i<12;i++)
{
ack[i]=UART1_getchar();
}
if(ack[9]==0x00)
{
UART0_sendstring("password checked sucessfullynn");
LCD4_sendstr (0,2, "password checked sucessfully");
}
label:
for(i=0;i<12;i++)
{
UART1_sendchar(gim[i]);

}
for(i=0;i<12;i++)
{
ack[i]=UART1_getchar();
}

if(ack[9]==0x02)
{
UART0_sendstring("cant find fingernn");
LCD4_sendstr (0,1, "cant find finger");
DelayProc(.7 * CCLOCK);
LCD4_sendstr (0,1, "Put finger");
UART0_sendstring("Put fingernn");
DelayProc(.7* CCLOCK);
goto label;

}
if(ack[9]==0x00)
{
UART0_sendstring("finger scan sucessfully completednn");
LCD4_sendstr (0,1, "finger scan sucessfully completed");
}

for(i=0;i<12;i++)
{
UART1_sendchar(uim[i]);

}
for(i=0;i<40000;i++)
{
UART0_sendchar(UART1_getchar());
}


LCD4_sendstr (0,1, "image downloaded");

}

Bikash Panda
Catch Me On

Bikash Panda

Blogger / Embedded System Developer at WeArGenius
A techie, tinkerer and tech lover, who loves to blog and feels everyone can learn tech provided they have the right attitude towards learning and passion. By profession, I am an IOT developer working in Smart Home/ Smart Grid domain.
Bikash Panda
Catch Me On

Related posts