LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: manuel rodrigues em 08 de Novembro de 2015, 15:46
-
Boa tarde,
tenho um Bluetooth HC-06 e um leitor Fingerprint Scanner - 5V TTL (GT-511C1R)
Site do leitor:
https://www.sparkfun.com/products/13007 (https://www.sparkfun.com/products/13007)
Configurei o Bluetooth pelo SoftwareSerial na porta 4 e 5 do arduino uno e o FPS na porta 10 e 11. Acontece que utilizando a seguinte lib:
https://codebender.cc/example/FPS_GT511C3/examples:FPS_Enroll#FPS_IDFinger.ino (https://codebender.cc/example/FPS_GT511C3/examples:FPS_Enroll#FPS_IDFinger.ino)
sempre que executo no arduino um comando do FPS, o RX do Bluetooth deixa de funcionar. Será alguma coisa com a lib do FPS? Alguém me pode ajudar no que será é que não faço ideia e necessito e ter os dois a funcionar no mesmo arduino.
Desde já agradeço
-
Por partes, consegues comunicar com o arduino utilizando BT?
-
Boa tarde, sim consigo comunicar com o arduino pelo Bluetooth mas só se não tiver a executar nenhuma das funções do FPS, ou seja se tiver só a executar os comandos do Bluetooth sim. Caso comesse a executar os comandos do FPS passa a funcionar o RX e tx do leitor de impressão digital mas o bluetooth deixa de receber dados. apenas consegue enviar
-
Estas a inicializar isto correctamente
FPS_GT511C3 fps(4, 5);
?
O softserial permite mais que uma porta serie virtual?
-
como assim? utilizei exactamente essa linha. depois faço "fps.open();" e seguido dos comandos que pretendo. mas só o fazer "fps.open" faz com que o bluetooth deixe de receber dados.
que o softwareserial permite mais do que uma porta virtual. inclusive existem exemplos disso. só se não funcionam é que nunca os testei.
o exemplo que encontrei foi o seguinte:
https://www.arduino.cc/en/Tutorial/TwoPortReceive (https://www.arduino.cc/en/Tutorial/TwoPortReceive)
acho que já encontrei o problema mas não tenho a certeza.
pelo que li dado que são utilizadas duas portas é necessário fazer "Nome_da_porta.listen();" de forma a escolher a porta. será disso? só vou poder testar isso logo à noite a ver se é mas caso seja porque é que afecta sempre o Bluetooth e nunca o FPS?
cumps
-
Pelo que percebi da tua descricao aqui deverias estar a usar FPS_GT511C3 fps(10, 11);
-
Já consegui resolver o problema. Tinha a ver com o facto de o SoftwareSerial manter o RX e o TX configurado para a última porta configurada. para resolver a questão basta colocar .listen() na porta que se pretende receber dados e dar um delay para dar tempo para a porta configurar e já funciona.
Obrigado