Go Down

Topic: Problema con el puerto serie (Read 3236 times) previous topic - next topic

alberto89403

Hola a todos.
Estoy realizando un proyecto donde necesito usar el puerto serie.
Tengo un problema. Para que el arduino transmita (Tx) necesito abrir el monitor serial, y en mi caso el arduino estaría alimentado por jack y necesito que esté transmitiendo sin abrir el monitor serial. Es decir cada vez que alimento el arduino que se ponga a enviar, y esto no sucede si no abro el monitor serial.
Necesito ayuda.
Además si lo hiciera por monitor serial que no es mi caso, cual es la manera que no reinicie el envío de datos?.
Sobretodo necesito ayuda en el primer punto.
Un saludo.
Gracias.
Alberto.

riscking

Hola,
No entiendo muy bien tu problema, por el monitor serial veras lo que hayas programado para que se vea por el monitor, tambien puedes usar otro interprete serial como putty, pero estas en las mismas, no tendras alguna condicion como if (Serial.available() > 0) que hasta que no este disponible el byte en el buffer del puerto no empieza a transmitir, esto quiere decir que te obliga a tener el puerto siempre activo.
Una vez activo si sales del monitor y vuelves a activarlo se reinicia, almenos con el ide de arduino siempre es asi, por el putty creo que no pero no estoy seguro.
Podrias decir un poco lo que pretendes hacer y poner tu codigo para poder ayudarte mejor.

alberto89403

Este es un ejemplo básico que escribe "hola" por el puerto serie.


void setup() {
  pinMode(led, OUTPUT);
Serial.begin(9600);
void loop() {
Serial.write("hola");
delay(100);
}

Si no abro el monitor serial el arduino no transmite por los pines (tx,rx). Yo cargo el programa y luego necesito que este conectado por jack. Pues cuando lo alimento lo reseteo no envía nada por el puerto serie. Sólo envía cuando tengo conectado el usb y además abro el monitor serial.

Necesito que transmita siempre independientemente de abrir ese monitor.
Muchas gracias por contestar si me puedes seguir ayudando lo agradecería.
Un saludo.

Heke

#3
Apr 15, 2013, 05:12 pm Last Edit: Apr 15, 2013, 05:14 pm by Heke Reason: 1

Este es un ejemplo básico que escribe "hola" por el puerto serie.


void setup() {
 pinMode(led, OUTPUT);
Serial.begin(9600);
void loop() {
Serial.write("hola");
delay(100);
}

Si no abro el monitor serial el arduino no transmite por los pines (tx,rx). Yo cargo el programa y luego necesito que este conectado por jack. Pues cuando lo alimento lo reseteo no envía nada por el puerto serie. Sólo envía cuando tengo conectado el usb y además abro el monitor serial.

Necesito que transmita siempre independientemente de abrir ese monitor.
Muchas gracias por contestar si me puedes seguir ayudando lo agradecería.
Un saludo.


El puerto "Serial" del arduino, es el mismo tanto si hablas con él por el cable usb, como si lo haces conectado a los pines TX0 y RX0

¿Como sabes que no transmite nada por los pines TTL?

¿Que has conectado, a que velocidad  y como lo has conectado para saber que no transmite nada?
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

alberto89403

Gracias por contestar.
No transmite nada porque no luce el led Tx.
Hasta que no abro el monitor serial del ide de arduino uno no empieza a transmitir.
Necesito que transmita sin abrir el monitor serial.
AYUDAAAA!!!!
Seguro que alguien sabe algo.
Un saludo.

American2020

Hola, una consulta, porque he notado lo mismo en mi arduino, este no transmite hasta que se abre el monitor Serial, incluso pareciera como que en el momento de abrirlo, el código se resetea y empieza de nuevo.

Mi conclusión en cuanto a la transmisión fué... Ok, no está trasmitiendo, porque no hay nadie "escuchando" entonces me quedó claro, no trasmite si no tiene realmente la necesidad de hacerlo, es como dejar una radio encendida sin volumen, o sin nadie escuchando :P

Lo que no se es a que se debe el reset.

¿En tu caso cual es la necesidad de que trasmita si no lo estás monitoreando? Quizás con ese dato sepa buscar como lidiar con esto.

Imagino que como lo alimentaras con el "jack" y no por USB tu comunicación Serial será usando los pines 0 y 1 (RX y TX) y también imagino que, o Arduino reconocerá si ahí hay alguien "escuchando" o quizás debas iniciar la trasmisión para que salgan por esos pines.

Bueno, espero no haberla liado, y ayudar un poco a entender como es esto, que tampoco lo tengo claro, pero llego a esas conclusiones.
My 3x3x3 Led Cube

[url=http://arduino.cc/forum/index.php/topic,1642

riscking

Lo del del reset es automatico, en este hilo explica como evitarlo http://arduino.cc/forum/index.php/topic,158630.0.html

Ahora bien si creas un programa que escriba a traves del puerto serie un texto, y en el otro lado no pones a nadie que escuche, entiendo que no va a funcionar, el rx dira que que no hay nadie a quien mandarselo, pienso yo vamos, de ahi a que en cuanto detecte una conexion serial me da igual el programa empiece a transmitir.

Ahora la pregunta es el arduino lo alimentas a traves del jack y la comunicación si quitas el usb??

alberto89403

Muchas gracias por la rapidez.
He probado el código teniendo un dispositivo que escucha y no transmite hasta que abro el monitor serial.
No es ese el problema.
Debe haber alguna configuración o algo que evite eso, porque mi arduino no estará conectado a un PC, y necesita enviar por puerto serie.
Gracias.
Si alguien ha realizado programas necesito ayuda.

riscking

#8
Apr 15, 2013, 06:51 pm Last Edit: Apr 15, 2013, 06:53 pm by riscking Reason: 1
Cual es ese dispositivo de escucha?? tal vez asi nos podramos hacer una idea, acabo de hacer una prueba con el putty y en cuanto se conecta con el arduino empieza a enviar, reseteo y sigue enviando no se cual es problema, primero se establece la comuniacion y luego envia, el monitor del ide de arduino hace lo mismo, hasta que no abres el puerto no envian datos porque hasta que no lo habres no hay comunicacion serie, solo esta conectado al com1 o com 4 en mi caso en espera. Es como tener un router wifi y un movil y en movil no metes la clave, hay wifi si pero no comunicacion.

Heke


Muchas gracias por la rapidez.
He probado el código teniendo un dispositivo que escucha y no transmite hasta que abro el monitor serial.
No es ese el problema.
Debe haber alguna configuración o algo que evite eso, porque mi arduino no estará conectado a un PC, y necesita enviar por puerto serie.
Gracias.
Si alguien ha realizado programas necesito ayuda.


Yo he realizado programas....

Repito la pregunta:

¿Como sabes que no transmite nada por los pines TTL?

¿Que has conectado, a que velocidad  y como lo has conectado para saber que no transmite nada?
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

alberto89403

El dispositivo que escucha es un Xbee Serie 2 y está todo perfectamente conectado con adaptador de niveles de tensión, asi que problema de conexión no es.
Yo envío por puerto serie y no transmite si alimento por fuente externa.
He creado dos puertos virtuales con SoftwareSerial y si funciona, pero no entiendo porque no transmite con los pines 0 y 1 (Tx Rx).
Con los puertos serie habituales no transmite hasta que abro el monitor serial.
Necesito solución urgente.
Gracias por contestar.
Un saludo.

Cheyenne

Podría ser porque lo tienes conectado a la vez al XBEE y al ordenador por USB. Si lo alimentas externamente desconecta el USB y te sacará lo que sea por el puerto serie.

Si además quieres ver lo que envías en el terminal del ordenador yo lo que hago es utilizar un FTDI y conectar solo GND y TxD.
http://cuadricopterodiyarduino.blogspot.com/

alberto89403

Muchas gracias a todos por contestar así da gusto de verdad.
Al final es que el led Tx del arduino es solo por USB entonces cuando comunico vía serie sin USB no se enciende ese LED.
No transmitía porque estaba utilizando una librería vieja de API de Xbee. Y además había un conector que no le llegaba alimentación correctamente del Xbee.
Otra solución cuando tengais problemas con el puerto serie es usar puertos virtuales (SoftwareSerial) y así comprobarlo.
Un saludo.
Gracias de nuevo.

American2020

Gracias por compartir cuál fué finalmente tu solución.

Es interesante eso de los puertos virtuales, sin duda para tener en cuenta a la hora de hacer experimentos.
My 3x3x3 Led Cube

[url=http://arduino.cc/forum/index.php/topic,1642

Go Up