Qual é o comprimento máximo do fio para comunicação serial entre dois Arduinos?

9

Estou construindo um projeto no qual dois Arduinos serão conectados por três fios: TX um RX para comunicação serial e um GND comum. Qual seria o comprimento máximo dos fios aqui antes que a comunicação seja afetada?

Estou usando um Arduino Mega R3 de um lado e um Arduino Mini do outro.

Não tenho nenhum requisito específico para a taxa de transmissão, eu poderia usar o menor se isso ajudar de alguma forma.

Hobie
fonte

Respostas:

4

Você precisa especificar

  • A ordem do alcance em que você está interessado - é da ordem de metros, dezenas de metros, quilômetros ou interestadual? :-). TODAS são possíveis com compromisso adequado.

  • Como você pretende se conectar ao circuito - pinos diretos do Arduino, buffer alto / baixo, drivers diferenciais, ...

Se você usar 5V / 0V "unipolar", digamos 9600 baud, poderá obter muitos medidores com drivers adequados. Se você usar um pino do Arduino diretamente, a resistência e a indutância do fio começarão a importar à medida que o alcance aumenta.

Com 300 bauds, você pode atingir centenas de metros com cabos de par trançado. À medida que o alcance aumenta, aspectos como a conversa cruzada do outro circuito e o ruído externo aumentam em importância. Em faixas mais longas, com 4 fios com sinal + terra torcidos juntos, cada um dos casos ajuda, mas é provável que, nas faixas de interesse, 2 fios mais o terra funcionem bem.

Se você estiver preparado para usar tensão suficiente e sinalização lenta o suficiente, poderá sinalizar milhares de quilômetros - como foi feito com os primeiros cabos telegráficos. Os milhares de volts necessários e as velocidades de sinalização de talvez alguns bits por segundo serão um desincentivo na maioria dos casos.

Russell McMahon
fonte
A distância que eu gostaria de percorrer é de aproximadamente 40 a 50 metros, de dentro de nossa casa até o portão externo. Minha intenção era conectar os pinos relevantes do Arduino diretamente a um cabo que encontrei em uma instalação anterior de intercomunicador.
hobie
2
Algum perigo para o Arduino com longas extensões de cabo. Indução, vazamento, carga eletrostática. (Raios e terra sobem apenas por falta de energia, mas ...). Díodos de braçadeira reversa para trilhos de fonte de alimentação em todas as linhas são uma boa idéia. Driver básico IC uma idéia muito boa. Mesmo um CI inversor Schmitt xx74xx14 em cada extremidade seria útil. (onde xx é varia de acordo com a família). Drivers de linha adequados ainda melhores, mas isso é um começo. Se o seu Arduino é valioso, use um buffer.
Russell McMahon
Obrigado a todos pelos comentários e sugestões. Para descobrir se consigo percorrer a distância determinada (ca. 40m) com uma conexão simples, tentei com dois Arduino Uno, respectivamente configurados como remetente e receptor. As placas são conectadas diretamente através das linhas TX / RX (pinos 0 e 1) a 9600 bits por segundo. O remetente envia uma sequência de teste a cada segundo enquanto o receptor está escutando os dados recebidos. . Eu estou usando uma linha existente (nenhuma informação sobre a qualidade / especificações deste cabo de qualquer forma, o par emissor / receptor parece funcionar sem qualquer problema a esta distância e configuração.
hobie
Obrigado, você teria alguma sugestão / link específico para um IC ou chip de driver?
hobie
@ hobie A 50 metros e 9600 bauds, você provavelmente pode obter bons resultados (experimente e veja) com quase qualquer IC de driver digital de 5V e até apenas ICs de saída digital. Um ponto de partida útil são os inversores CMOS do gatilho Schmitt, tipicamente 74xxx14, CDxxx14, MM ..... 14. Procure inversores acionados por Schmitt, evite os de menor potência.
Russell McMahon