LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: medecau em 09 de Novembro de 2009, 18:31

Título: Comunicação Serial entre dois Arduinos.
Enviado por: medecau em 09 de Novembro de 2009, 18:31
Estava a aescrever este post aqui quando me surgiu uma ideia, que resolveu a minha duvida. Resolução após citação.
Citar
Estou a tentar trocar dados entre dois Arduinos. Um Duemilanove e um Pro.

As ligações são:
Duemilanove  -> Pro
Tx -> RX
RX -> TX
5v -> +
GND -> -

Consigo fazer passar dados do Duemilanove para o Pro sem problemas mas não no sentido contrario, os dados ao passarem do Pro para o Duemilanove parecem perder alguns bits.

Como tenho mais do que um Arduino Pro(3) tentei utilizar outro mas continua igual, já tentei carregar o código que tinha no Duemilanove para outro Pro mas o problema persiste pelo que deduzo que seja na transmissão de dados dos Arduino Pro que esteja o problema.

Depois de ter escrito isto surgiu-me a ideia de ligar dois dos Pro mas fornecer alimentação através do Duemilanove em vez de usar o cabo USB. Desta forma libertando o Serial.
Ainda assim o comportamento é um pouco estranho, se alguém souber porque é que isto acontece e/ou como contornar agradeço que partilhem a informação.
Título: Re: Comunicação Serial entre dois Arduinos.
Enviado por: TigPT em 09 de Novembro de 2009, 18:51
Boa tarde,

Não percebi bem como tem as ligações mas vou deixar umas dicas que podem ajudar:

Se depois de confirmar isto ainda tiver com problemas, tente explica-las melhor para o tentar ajudar ;)
Título: Re: Comunicação Serial entre dois Arduinos.
Enviado por: medecau em 09 de Novembro de 2009, 19:39
O GND(terra) esta partilhado porque os Pro recebem alimentação do Duemilanove e a potência não é problema. O problema parece-me estar quando ligo a placa de USB aos Pro ou quando utilizo o Duemilanove para receber dados dos Pro.

Vou tirar umas fotos para mostrar as ligações.
Título: Re: Comunicação Serial entre dois Arduinos.
Enviado por: medecau em 09 de Novembro de 2009, 20:42
Aqui esta:
a A é uma Duemilanove ligada por USB ao computador
a B é uma Pro com alimentação do A e com o  pino digital 0 ligado ao pino digital 1 do C
e a C também é Pro com alimentação da B

A A só da alimentação, a B esta sempre a ler do Serial e quando lê um char '1' liga o LED do pino 13 durante 50 ms e por fim a C escreve no Serial um '1' e depois para durante 500ms.

Espero que isto seja útil para aqueles que estejam a tentar por dois Arduinos a "conversar".
Título: Re: Comunicação Serial entre dois Arduinos.
Enviado por: TigPT em 09 de Novembro de 2009, 20:58
Quanto às ligações, só suspeitaria dos pro, se a entrada onde estás a liga-los estiver como entrada dos reguladores de tensão, esta pode não conseguir só com os 5V alimentar o regulador e dar os 5V estáveis visto que a recomendação para essas entradas é de 7V a 12V.

Também não percebi como é que o C envia o 1 visto que nenhum dos arduinos "C/B" estão ligados ao A para saber que aconteceu algo.

Experimenta ligar através de uma breadboard e ligar da breadboar aos pro em vez de estares a alimenta-los por essa ficha frontal ao lado do serial.
Título: Re: Comunicação Serial entre dois Arduinos.
Enviado por: medecau em 09 de Novembro de 2009, 23:28
o A só esta ali para fornecer energia, o C envia dados, neste caso um byte a cada 800ms, e o B ao receber esse byte liga o LED durante 50ms.

fiz upload do video para mostrar:
3 little Arduinos (http://www.youtube.com/watch?v=5-dOaXQyn6c#)
Título: Re: Comunicação Serial entre dois Arduinos.
Enviado por: Tyran em 09 de Novembro de 2009, 23:48
Não tás a ligar o TX do B ao RX do C.
Título: Re: Comunicação Serial entre dois Arduinos.
Enviado por: TigPT em 09 de Novembro de 2009, 23:50
Offtopic... fizeste o vídeo com que câmara?
Título: Re: Comunicação Serial entre dois Arduinos.
Enviado por: medecau em 10 de Novembro de 2009, 00:07
Não tás a ligar o TX do B ao RX do C.
bem visto, mas para efeitos de por a coisa a funcionar o B esta só a escutar o que o C estiver a escrever.

TigPT:
a maquina é uma Sony Cyber-shot DSC-T70 (http://www.google.com/search?sourceid=chrome&q=sony%20cyber-shot%20dsc-t70&um=1&hl=en&ie=UTF-8&sa=N&tab=iw&start=0) - estava com o macro
Título: Re: Comunicação Serial entre dois Arduinos.
Enviado por: TigPT em 10 de Novembro de 2009, 00:10
Muita qualidade para a luz da cena... muito boa câmara!
Título: Re: Comunicação Serial entre dois Arduinos.
Enviado por: Fifas em 10 de Novembro de 2009, 17:16
Muita qualidade para a luz da cena... muito boa câmara!

realmente, tá brutal :) faz-me lembrar o k800 (joking ;D)

(desculpem o off-topic :D)