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);
}
}
}
}
Tags:
As respostas para este tópico estão encerradas.
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por