(Resolvido)Duvida na realização de leitura de 2 leitores de cartão no mesmo RX

Bom dia a todos estou com um problema em um projeto que realiza a leitura de 2 leitores de cartão.

O problema e o seguinte, quando estou realizando uma leitura com um só leitor ele funciona bem, mais quando e ligado o outro leitor começa a dar erro de leitura e demora muito tempo para realizar outra leitura.

Os CIs estão ligados no mesmo terra que sai do Arduino e compartilham a mesma porta RX,

O CI responsável por chavear qual leitor está sendo lido e o 4066 onde o Arduino aciona a uma porta por exemplo a saída 6 que por sua vez chaveia o 4066 para a passagem dos dados.

A baixo i diagrama de bloco do circuito

O circuito foi feto como no desenho abaixo

Onde o outro leitor ira ser ligado em outro MAX 232, ligado no 4066 na porta 11 e sua saída no pino RX do Arduino, a porta que liga está chave e a 12 do 4066.

O trecho do código responsável pela leitura,

if (palavra2.substring(0,4) == "1010")//para a palavra iniciada em 1010 indica a leitura do cartão
{
//leitor 2

if(palavra2.substring(4,8) == "1001") // verifica qual leitor será lido
{

liga(6); //função para ligar a porta e desligar apos 500


if(Serial.available()>0)
{
a = Serial.read();
if(a==2)
{
client.write(66);
}
else if ((a > 47 && a < 91) || (a==13))
{
client.write(a);
}
}
}
//leitor 1
else if (palavra2.substring(4,8) == "1010")
{

liga(7);
if(Serial.available()>0)
{
a = Serial.read();
if(a==2)
{
client.write(65);
}
else if ((a > 47 && a < 91) || (a==13))
{
client.write(a);
}
}
}
}

Exibições: 1066

As respostas para este tópico estão encerradas.

Respostas a este tópico

Creio que se vc usar uma porta AND já de um resultado bom.

Depois dos MAX232 o sinal deve ter nivel 1 em silencio. Quando vem um sinal são pulsos em 0.

Sendo assim o AND fará com que qualquer um que fique em 0 gere uma saida igual a ele.

Essa porta and poderia até ser feita com diodos+resistores (2x 1n4148 apontados para os sinais e um resistor de 4K7 de ao 5V) , mas não é exatamente a mesma coisa.

Só vai dar problema se os 2 leitores gerarem valores ao mesmo tempo, mas nesse caso o seu tb não conseguiria tratar.

Ainda, caso prefira fazer com um mux, prefira um digital, como o 74LS157, já que o sinal aih é digital.

Obrigado Eduardo, irei tentar com os 2 CI AND E MUX assim o que der melhor resultado uso ele.

Depois posto ele aqui no fórum para futuras consultas.

Utiliza o SoftwareSerial => http://arduino.cc/en/Reference/SoftwareSerial

Bom dia

obrigado pela dica mais já utilizo a biblioteca  e também criei duas portas seriais e também deu o mesmo erro.

Seria uma ótima opção também.

Assim vc teria 2 seriais. Uma fisica e outra virtual.

Bom dia pessoal, por motivos de força maior ($$$) o projeto ira ser desativado muito obrigado pelas dicas.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço