# Comunicacion entre Pics a larga distancia



## rachelies (Jun 8, 2010)

Hola:
Necesito comunicar varios pic que serian esclavos, con un maestro situado a 1-1,5 metros. He probado con I2C, y ya en 40cm se pierde la señal y no funciona. ¿Habrá que colocar unas resistencias de distinto valor a 4k7 para I2C?
¿Que comunicación me recomendais que se pueda implementar con CCS? No tiene porque ser muy rápido, pero cuanto más mejor. He probado con el I2C a 100kbps a 5cm y funciona perfectamente, pero necesito mucha mas longitud.

Un saludo y muchas gracias.


----------



## fernandoae (Jun 8, 2010)

No es una distancia "larga"... por que no usas rs232?


----------



## rachelies (Jun 8, 2010)

Ya he leido en otro foro que es más facil seguir con el i2c y un expansor de bus i2c, que permite comunicar a largas distancias (unos metros) y a alta velocidad.
El 232 o 485 era otra opcion, pero me decanto esta vez por el i2c
gracias


----------



## fernandoae (Jun 8, 2010)

Ojo que "expansor" no significa mas rango... puede ser expansor de salidas, etc.


----------



## Eclip-se (Jun 8, 2010)

Por algunos proyectos que he realizado, se que siempre se usa RS485, que es una variación del RS232 (Por facilidad, economía y sobre todo rapidez en la realización de proyectos).
  El RS485, al trabajar con niveles de corriente es mas inmune al ruido, y por lo que he comprobado trabajan muy bien ha una distancia de 1Km.

  Se usa el puerto RS232 junto con unos conversores RS485.

  Para hacer las pruebas te recomiendo primero que establezcas la comunicación RS232 con los diferentes micros, luego adaptes el conversor RS485 y no vas ha tener tantos inconvenientes en tu proyecto.


----------



## fernandoae (Jun 9, 2010)

> El RS485, al trabajar con niveles de corriente es mas inmune al ruido,


No, con corriente no, con señales complementarias


----------



## rachelies (Jun 9, 2010)

Es para un metro y medio de distancia, asi que el i2c con el i2c bus extender supongo que funcionará. El max485 y este ic para extender el bus cuestan lo mismo, asi que prefiero el i2c que es compatible con más circuitos (eeprom, a/d, controlador de display...)
Probaré, y si no funciona, tendre que ir hacia el 485. Además ¿Es más rapido el i2c que el 485?
Saludos


----------



## ByAxel (Jun 9, 2010)

rachelies dijo:


> s ¿Es más rapido el i2c que el 485?
> Saludos



El I2C a velocidad estándar es de 100Kbits a 400Kbits y en la industri lo usan hasta 3.4Mbits/s.
El RS485 a 100Kbps para 1200 metros y hasta 35Mbps para 10 metros, ambos a comunicación  half-duplex...

En la Wiki hay más info.


----------



## rachelies (Jun 9, 2010)

ok, muchas gracias. El 485 llega hasta 35Mbps, pero en los pic lo dudo. ¿Cuanto será lo máximo a lo que podrá llegar en un pic?


----------



## Meta (Jun 9, 2010)

Hola:

Lo mejor para distancias altas sería usando RF (radio frecuencia). Fucniona con RS232 del puerto serie, es igual pero al aire.



http://www.youtube.com/watch?v=ukASM3UUGJE

Saludo.


----------



## Eclip-se (Jun 16, 2010)

Meta dijo:


> Hola:
> 
> Lo mejor para distancias altas sería usando RF (radio frecuencia). Fucniona con RS232 del puerto serie, es igual pero al aire.
> 
> http://www.youtube.com/watch?v=ukASM3UUGJESaludo.



Que tal que estes en una industria donde exista un ambiente ruidoso, ahi por lo general se usa "Cables" ya sea usando cualquiera de los protocolos de comunicacion: RS485, TCP/IP, CAN etc..


----------



## eidtech (Jun 19, 2010)

Eclip-se dijo:


> Que tal que estes en una industria donde exista un ambiente ruidoso, ahi por lo general se usa "Cables" ya sea usando cualquiera de los protocolos de comunicacion: *RS485*, TCP/IP, CAN etc..




Mucho cuidado, ya que *RS-485* NO ES UN PROTOCOLO DE COMUNICACIÓN, es un estándar que define las caracteristicas eléctricas de los transmisores/receptores para comunicaciones multi-punto.


----------



## Eclip-se (Jun 20, 2010)

Gracias por la aclaracion, es que al poder usar RS232 para implementar un protocolo de comunicacion me confundi, pero es verdad RS485 es solo un estandar


----------



## hoops (Nov 17, 2010)

Hola a todos.

Yo estoy realizando un proyecto y tengo que comunicar varios PICs 18F4585 con una Rs485. He trabajado con rs232 y todo funciona correctamente pero con 485 no consigo hacer un simple código ni para encender un LED con un master y un slave. Utilizando 2 Pics y 2 max 485 debería aprovechar los pins C6 y C7 que corresponden a TX y RX o poner el #define RS485_USE_EXT_INT TRUE y trabajar con B0,B3,B4 y B5 conectados al max 485 como indica la librería rs485.c ??

Tengo un montón de dudas sobre el tema. Si alguien tiene algún código de ejemplo lo agradecería. Lo más simple del mundo porque no consigo transmitir ni montando ni simulando.

Muchas gracias.


----------



## Moyano Jonathan (Nov 17, 2010)

Si es un ambiente poco ruidoso ( ruido electrico ).....lo más sencillo es usar RS485. En caso de una industria o ambiente de alto ruido electrico...usar CAN para investigar sobre este último les recomiendo este link ampliamente: http://www.todopic.com.ar/foros/index.php?topic=19182.0


----------



## Meta (Mar 18, 2013)

Hola:

Quiero saber la distancia entre PIC y PIC aconsejable para no perder datos de comunicación. Por ejemplo, tengo un mando de PS2 para conectarlo al PIC como salida y otro PIC desde lejos para controlar motores, ventiladores, lueces, etc. 

Quería usar un protocolo de comunicación, he pensado en I2C, RS232 e incluso uno propio como codificador y decodificador, ya requiere más pines, pero bueno.








¿Alguna idea?

Saludo.


----------



## Destiand (Mar 18, 2013)

Hola Meta, la distancia entre esos tipos de protocolo es muy pequeña ya que transmite por voltaje el rs232 tiene una distancia max 10m, y el i2c es para una comunicacion corta nomas entre pcb x lo q he visto. Seria recomendable si quieres mayor distancia otro tipo de protocolo.


----------



## ferits (Nov 21, 2013)

hola para todos estoy trabajando en un proyecto de comunicación entre dos pic  el problema es la distancian entre los  pic la ideas es una distancia de 5000 metros....en que estaba investigando es que el rs 485 aguanta un máximo de distancia de 1200 metros...


----------



## Meta (Nov 21, 2013)

Se puede usar buenas antenas para largas distancias.


----------



## fernandoae (Nov 21, 2013)

El enlace entre los dos puntos es fijo? o sea, el transmisor o el receptor se mueven? necesitas comunicacion bidireccional?


----------



## ferits (Nov 21, 2013)

si se necesita bidireccional...


----------



## ricbevi (Nov 21, 2013)

ferits dijo:


> si se necesita bidireccional...



Hoal...Se mueven o son puntos estáticos fijos y que cantidad de informacion debes enviar(Ej:no es lo mismo enviar video en HD que un paquete de 10 datos de 8bit  dos veces en una hora).

Ric.


----------



## Meta (Nov 22, 2013)




----------



## fernandoae (Nov 22, 2013)

Proba con dos lasers verdes de 50mw y el puerto serie, es un lindo experimento


----------

