Pessoal, bom dia.

Preciso de ajuda no funcionamento do leitor biométrico para impressões digitais.

O dispositivo executa as três leituras mostradas no monitor serial, porém não mostra nenhuma mensagem (sucesso ou falha). Estou usando um Arduino Mega com as portas seriais 10 e 11.

Exibições: 3708

Responder esta

Respostas a este tópico

Amigo, qual leitor está usando? O da Adafruit?
Posta seu programa aí! Facilita pra gente!

Quanto ao código, estou usando o exemplo FPS_Enroll disponível quando instala a biblioteca.

As portas 4 e 5 são as seriais para o Arduino UNO, para a MEga deve-se alterar para 10 e 11 devido a arquitetura das placas.

Como citei anteriormente, ao chegar ao fim da 3ª captura da mesma impressão digital o programa simplesmente pára de responder, ou seja, não dá falha nem sucesso!

#include "FPS_GT511C3.h"
#include "SoftwareSerial.h"

// Hardware setup - FPS connected to:
// digital pin 4(arduino rx, fps tx)
// digital pin 5(arduino tx - 560ohm resistor - fps rx - 1000ohm resistor - ground)
// this voltage divider brings the 5v tx line down to about 3.2v so we dont fry our fps

FPS_GT511C3 fps(4, 5);// Alterar para 10, 11 no Arduino Mega

void setup()
{
Serial.begin(9600);
delay(100);
fps.Open();
fps.SetLED(true);

Enroll();
}


void Enroll()
{
// Enroll test

// find open enroll id
int enrollid = 0;
bool okid = false;
while (okid == false)
{
okid = fps.CheckEnrolled(enrollid);
if (okid==false) enrollid++;
}
fps.EnrollStart(enrollid);

// enroll
Serial.print("Press finger to Enroll #");
Serial.println(enrollid);
while(fps.IsPressFinger() == false) delay(100);
bool bret = fps.CaptureFinger(true);
int iret = 0;
if (bret != false)
{
Serial.println("Remove finger");
fps.Enroll1();
while(fps.IsPressFinger() == true) delay(100);
Serial.println("Press same finger again");
while(fps.IsPressFinger() == false) delay(100);
bret = fps.CaptureFinger(true);
if (bret != false)
{
Serial.println("Remove finger");
fps.Enroll2();
while(fps.IsPressFinger() == true) delay(100);
Serial.println("Press same finger yet again");
while(fps.IsPressFinger() == false) delay(100);
bret = fps.CaptureFinger(true);
if (bret != false)
{
Serial.println("Remove finger");
iret = fps.Enroll3();
if (iret == 0)
{
Serial.println("Enrolling Successfull");
}
else
{
Serial.print("Enrolling Failed with error code:");
Serial.println(iret);
}
}
else Serial.println("Failed to capture third finger");
}
else Serial.println("Failed to capture second finger");
}
else Serial.println("Failed to capture first finger");
}


void loop()
{
delay(100000);
}

André, boa tarde.

Estou usando o leitor da ADH-Tech modelo GT-511C1. A biblioteca pelo jeito é genérica para os modelo C2, C3...

Estou usando um  conversor de nível lógico que transforma os sinais RX/TX de 5V (Arduino) para 3,3V no sensor ao invés de divisor resistivo. (anexo esquema)

Boa tarde! 

Preciso de ajuda, estou no Nono Semestre de Engenharia Elétrica, portanto eu e meu grupo estamos elaborando nosso TCC. Escolhemos criar um controlador de Acesso utilizando como interface de comunicação e possibilidade de criar logicas, o Arduíno. Durante as pesquisas encontramos o tutorial aqui do Garagem que era exatamente oque queríamos, um controlador de acesso por Biometria que pudesse ser projetado utilizando o Arduíno. Como já possuíamos  o Arduíno compramos apenas o Scanner, Agora não consigo fazer Funcional. 

Fiz a montagem creio que corretamente, estou utilizando a Sketc deste tutorial, já fiz as alterações das entradas e saídas e add a biblioteca do Scanner no Arduíno, porem nada, nem o Scanner acende a luz azul e não indica informação alguma no LCD.

Gostaria de saber se alguém já utilizou esta Scanner com Arduíno Mega, ou teve esta mesma dificuldade que talvez tenha encontrado a solução e possa me ajudar?

Luciane, boa tarde.

Consegui resolver o problema alterando o sketch FPS_Enroll original. Após fazer um "debug", encontrei uma linha errada que não resultava em nada, por isso que nada acontecia após as três leituras para gravação da impressão digital.

Vou lhe enviar o código depois pois não o tenho aqui agora.

Como o scanner armazena 20 digitais (0 a 19), você poderá utilizar os ID's criados para mostrar o nome do usuário que está acessando. O comando switch case permite este tipo de função.

vou enviar a você uma imagem da minha montagem, para ver se você montou da mesma forma que eu.

Como posso fazer pra Conseguir esta sketch FPS_Enroll originalcom você?

Eu não estou utilizando este conversor de nível lógico. da sua montagem

O conversor de nível lógico reduz a tensão de 5V para 3,3V e vice-versa. O Arduino trabalha com 5V e o scanner com 3,3V. É possível fazer um divisor resistivo (mais simples e barato) do que comprar um conversor. Cuidado para não queimar o scanner. Acho que o Arduino Nano trabalha com 3,3V e não precisa de conversão. No começo também apanhei com isso.

Tome cuidado com o uso de protoboards, pois são loucos para dar mal contato e fundir nossas cabeças. Às vezes pára de funcionar e não sabemos porque!

À noite lhe envio mais informações juntamente com o código. Meu material sobre Arduino está no meu notebook em casa e estou no trabalho agora.

Poxa, João muito obrigado pelos toques, vou agradar suas informações.

Me passe seu email.

lulucyani@gmail.com.

Luciane, me desculpe se eu escrever algo que você já sabe. No início você cita que o display não indica nenhuma informação.

A biblioteca do FPS é composta por 3 exemplos: FPS_Blink faz piscar o led azul indicando que há comunicação entre Arduino e Scanner. FPS_Enroll grava as digitais. FPS_IDFinger lê as digitais gravadas e executa a operação que você quiser de acordo com a programação.

Neste caso, como você ainda não deve ter feito nenhuma programação, o display exibirá somente uma faixa.

Com o FPS_Enroll, você precisa ver as informações no Serial Monitor (aquela lupa no canto superior direito na tela (IDE) de programação do Arduino). Cada vez que você clica na lupa a placa é reiniciada. Não fique gravando um monte de dedos pois a capacidade é apenas 20. Para apagar dá um pouco mais de trabalho. Sugiro que grave apenas um dedo por usuário da sua equipe.

Segue ligação com o divisor resistivo e código FPS_Enroll corrigido. Copie e cole na IDE do Arduino (tela de programação).

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço