• Welcome to LusoRobótica - Robótica em Português.
 

Arduino + RS485

Started by almamater, 09 de August de 2012, 22:47

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

almamater

Olá, preciso de uma ajuda para fazer as ligações de 2 Arduinos ao chip da maxim RS485.

Queria testar fazer uma comunicação entre 2 Arduinos com 2 destes chips, pelo que andei a ver as ligações em cada Arduino devem ser assim:


http://dereenigne.org/wp-content/uploads/modbus.png  (http://dereenigne.org/tag/rs-485)

Dúvida:


  • Para estabelecer comunicação com ambos os Arduinos/RS485 é ligar ambos os chips de que maneira?

A ideia mais tarde seria juntar mais Arduinos e brincar com 1 Maters e os restantes Slaves. Encontrei este site mas eles usam uma placa já feita e não consigo perceber as ligações entre arduinos/chips, mas tem exemplos de código que acho que posso usar. http://arduino-info.wikispaces.com/RS485-Brick


rsoares

Ligas os dois (ou mais) com os Pinos TX e RX.

almamater

#2
Ok, tenho ainda umas questões  ;D

Se tiver 1 Master e 2 Slaves por exemplo ligo o Arduino Master ao TX\RX do RS485 e os outros 2 RS485 vão partilhar as saídas  A /B deste 1º certo? Tipo isto:



1ª Questão: Se o Master enviar por exemplo "1" (em que o '1' acende o LED do 1º Slave e '2' acende o Led do 2º Slave), o 1º Slave aceita e o 2º Descarta certo? Não preciso de usar nenhum código mais complicado que isto pois não? (como um protocolo modbumaster, etc..).

2ª Questão: A resistência de 150ohm tem de ser colocada no último RS485 (no final e entre os fios A e B) ou em todos? ou não é preciso usar resistência em curtas distâncias?


Sérgio_Sena

2º - a resistência de 120 OHM é usada normalmente em longas distâncias, no Master e no Último Slave.

para brincadeiras em protoboards não há essa necessidade
Cumprimentos,
Sérgio Sena

Electronic Gear for Musicians

Instagram

almamater

Olá,

Fiz o esquema acima ma não coloquei nenhum condensador nem resistências, liguei o 1º Arduino do lado esquerdo como MASTER e os outros 2 como SLAVE A e B, acontece que o último arduino (SLAVE_B) não faz nada.. não recebe o 'B' enviado pelo Master:








O SLAVE_A está a funcionar bem e as ligações estão todas bem feitas.. o código que usei é simples e deste site: http://arduino-info.wikispaces.com/RS485-Brick

Tenho de acrescentar alguma coisa no último Arduino?



almamater

Ok, resolvi o mistério... troquei o chip MAX485 deste SLAVE_B  e já deu.. o outro deve ter algum defeito.

Tinha sido um sample que pedi à maxim e tem a refª CPA1121, com um outro que comprei no ebay funciona bem, este último tem a refª CPA1118 mas são iguais.