Enviar datos desde PIC a 50 metros via cable

#1
Hola amigos electrónicos. Acudo aquí esta vez con un problema que me tiene la verdad muy ocupado estos días, y el cual todavía no lo he podido solucionar. Tengo el siguiente circuito:



La explicación es la siguiente: la consola de control que tiene el PIC, el LCD y los botones se encuentra a 20 metros de distancia del reloj de leds que debe controlar. Para ahorrar en fuentes utilice el voltaje que sale de la misma fuente que alimenta al reloj de leds (esta fuente esta bien cerca del reloj). La señal del PIC debía llegar hasta la lógica TTL y CMOS presente al lado del arreglo de leds (en un principio era solo 20 metros).
Como uds. pueden suponer, la señal se deterioraba en el camino, y no llegaba como debía llegar.
El PIC trabajaba bien (el voltaje de 5Vcc llegaba sin problemas ya que se podia visualizar el LCD funcionando, quizas con un poco menos de brillo), pero no llegaba los datos enviados por este al otro lado.
Lo pude solucionar colocando del lado de la lógica del reloj un CD40106, el cual posee compuertas Schmitt Trigger y hace una amplificación de la señal (ver segunda imagen).



Ahora bien, he aquí el problema:
Necesito aumentar la distancia hasta 50 o 100 metros si es posible. Ya he probado que con la solución anterior no funciona, la señal no llega (el PIC nuevamente trabaja OK, no le afecta el hecho de que la fuente de poder que lo alimenta esta a 50 metros, obviamente el brillo del LCD baja otra vez pero eso no me preocupa porque se puede ver bien igual). Coloque en el medio del cable (25 metros) otro CD40106 pero no sirve.
Podré construir algún amplificador para la señal del PIC? Servirá usar RS232? Si es asi, como lo aplico? Tendré que colocar una fuente de 5Vcc del lado del PIC?
Necesito sus consejos y ayuda.
Saludos.
 

Fogonazo

Exorcista & Moderador eventual
#2
¿ Por que será que esto me parece conocido ? :D

Cuando dices "Deteriora" que significa, caída de tensión o aparición de ruidos.
 
#3
Que tal:
RS232 no sirve, la señal se pierde a los 9-15 metros.
Yo usaría el RS485 con el chip LTC485 o similares que superan los 300 metros pero seria comunicación serial por lo que tendrías un PIC a ambos extremos del circuito.

Saludos.
 
#4
si no es bidireccional la comunicacion...
yo hice una alarma y los sensores los coloque con un uln2803 y 12v y cable de +-50mts aprox...
no se si te sirva la info...
 
#5
¿ Por que será que esto me parece conocido ? :D

Cuando dices "Deteriora" que significa, caída de tensión o aparición de ruidos.
Jeje..siempre tuve el mismo problema con las señales y las distancias :cry:
Al poner "deteriora" en realidad quise decir que la señal se altera, o no llega....la verdad que nose si es qUE pierde voltaje o hay ruido (me tiro mas por la 1era, porqUE era lo que me sucedia antes de poner el Schmitt Trigger).

Que tal:
RS232 no sirve, la señal se pierde a los 9-15 metros.
Yo usaría el RS485 con el chip LTC485 o similares que superan los 300 metros pero seria comunicación serial por lo que tendrías un PIC a ambos extremos del circuito.

Saludos.
Ok, podría usar RS485...ahora, porq es necesario otro PIC? Solo necesito que los datos lleguen tal cual salen del pic (son 4 salidas, no es bidereccional) a los 74LS y CD40 que tengo del lado del reloj. Es posible hacer un circuito RS485 unidireccional con 4 salidas?

si no es bidireccional la comunicacion...
yo hice una alarma y los sensores los coloque con un uln2803 y 12v y cable de +-50mts aprox...
no se si te sirva la info...
Podrias explicar mejor como lo hiciste? Es que no me imagino como podes usar 12V en un circuito con PIC y TTL...

Cualquier consejo sera bienvenido.
Saludos y muchas gracias por tomarse la molestia en responderme :)


 
Última edición por un moderador:
#6
Como es unidireccional se tendría que usar 8 LTC485 para las 4 lineas, aunque viéndolo bien, no va mucho la idea ya que por cada línea se requiere dos chip y dos cables... como en la imagen...
Ahora, me referí a un PIC a cada extremo para poder usar solo dos chip LTC485; el PIC que está junto al RelojLed se encarga de enviar esas 4 líneas TTL por solo una usando el RS485. Claro que ahí ya interviene un cierto protocolo para que el PIC que reciba los datos sepa que linea TTL se ha activado.

Creo que lo que planteo lubeck estaría mejor, en cuanto a costos y espacio...
 

Adjuntos

Última edición:
#8
Como es unidireccional se tendría que usar 8 LTC485 para las 4 lineas, aunque viéndolo bien, no va mucho la idea ya que por cada línea se requiere dos chip y dos cables... como en la imagen...
Ahora, me referí a un PIC a cada extremo para poder usar solo dos chip LTC485; el PIC que está junto al RelojLed se encarga de enviar esas 4 líneas TTL por solo una usando el RS485. Claro que ahí ya interviene un cierto protocolo para que el PIC que reciba los datos sepa que linea TTL se ha activado.

Creo que lo que planteo lubeck estaría mejor, en cuanto a costos y espacio...
Lo de 8 LTC485 no me preocupa, los 2 cables por línea si... Si es unidireccional, para que necesito 2 lineas? Con un input y output por cada LTC485 estaría...
No es posible utilizar los drivers de el LTC485 individualmente?
Y lo de lubeck no me quedo muy en claro, estaría bueno si me lo puede explicar ;)
 
#10
Podrias explicar mejor como lo hiciste? Es que no me imagino como podes usar 12V en un circuito con PIC y TTL..
el CD40106 es CMOS o sea que aguanta hasta 15v...

ve el datasheet del uln2803... para la conexion...

pongo una imagen para darte una idea...

en lugar del puerto lpt va el pic...
 
Última edición:
#11
Hazlo como menciona Lubek, envia un voltaje mas alto (12 o 15V) usando un uln2803 o transistores convencionales, y a la entrada disminuyelo usando puentes resistivos, operacionales u optoacopladores

Recuerda que los cables largos tienen capacitancias parasitas que deterioran la señal cuadrada, asi que estas obligado a bajar la velocidad de transmision, por lo que es mejor poner a la entrada del PIC operacionales en modo comparador para volver a reconstruir la señal cuadrada
 
#12
Hazlo como menciona Lubek, envia un voltaje mas alto (12 o 15V) usando un uln2803 o transistores convencionales, y a la entrada disminuyelo usando puentes resistivos, operacionales u optoacopladores

Recuerda que los cables largos tienen capacitancias parasitas que deterioran la señal cuadrada, asi que estas obligado a bajar la velocidad de transmision, por lo que es mejor poner a la entrada del PIC operacionales en modo comparador para volver a reconstruir la señal cuadrada
Gracias por tu respuesta, el tema es que estuve viendo que el ULN2803 es igual al ULN2003 solo que este ultimo tiene un buffer menos. Como podría enviar 12V si es NPN y solo envío GND? Pongo las salidas del ULN conectadas con resistencias PULL-UP a 12V y ya funcionaría? Del otro lado con un arreglo de 4N26 ya estaría...
Saludos y gracias por sus respuestas :)

PD al mod: Pido disculpas por mi lenguaje, igualmente creo que fuiste muy duro por solo haber escrito sin "ue" el "que" 2 veces en todo el post.
 
Arriba