Problema con el puerto serie

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.

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.

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.

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.

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?

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.

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 :stuck_out_tongue:

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.

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??

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.

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.

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.

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?

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.

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.

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.

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.

hola a todos es la primera vez que escribo en el foro me atrevo a escribir en una pregunta ya realizada porque tiene que ver con mi pregunta a mi me pasa algo similar pero en mi caso no envio nada por el monitor serial ni por los pines 0 o 1, mi caso se encuentra con un bluetooth configures mis pines con la librería de softwareSerial(Rx,Tx); más sin embargo me pasa lo mismo cuando tengo conectado el arduino a la computadora y abro el monitor serial aunque no lo use y ni envie nada hace lo que debe de hacer mi programa pero si lo cierro se estropea todo, al igual que emulando su entrada del bluetooth con un programa llamado hercules que permite usar dos puertos físicos como COMS del bluetooth hay puedo escribir lo entrante y la salida ayuda amigos!!!!!

Hola amigos, decidí escribir ya que tengo el mismo problema y no logro solucionar.

Tengo dos Arduinos nano, uno genérico y otro chino, cargue el siguiente programa en los dos:

void setup() {
Serial.begin(9600);
}

void loop() {
Serial.println("Hola Mundo");
delay (100);
}

Cuando lo alimento por el puerto USB puedo mirar que imprime en el monitor el mensaje “Hola Mundo” cada 100 ms y el led indicador de Tx siempre se encuentra parpadeando, esto sucede con las dos placas, hasta aquí todo normal.
El problema sucede cuando los alimento a través de una fuente externa, en el arduino chino parpadea el led Tx indicando de que se está transmitiendo a través del puerto serie, mientras con la placa genérica no sucede lo mismo esta no parpadea y no envía datos por el puerto serie.

Alguien me puede ayudar con alguna solución
Gracias

Y como has conectado los puertos entre ambos arduinos. Uniste GND?

hola,
tengo un problema con mi arduino uno...no reconoce el puerto serial
que puede hacer. Uso GNU/linux(trisquel), agradeceré sus respuestas

Hola benuvni, bienvenido al foro.
Lamentablemente has respondido un hilo viejo, y no debiste hacerlo.
Solo el autor puede.
Además el hilo es de problemas con el puerto serie pero no de hardware como en tu caso.
Te recomiendo que crees un hilo nuevo en el foro General o en Hardware, planteando exactamente lo mismo pero no sigas acas.

Buenas, yo también he tenido el mismo problema con los puertos serie para encender un led en arduino mega a través de un botón en arduino uno.

Hay que tener en cuenta que el puerto serie de los pines 1 y 0 estan seriados con los del PC. Esto puede generar problemas.

Probé lo siguiente:
Si conecto arduino uno al ordenador (el que envia la información al mega). El arduino mega lo tengo conectado por fuente de alimentación (Jack). En este caso el arduino mega no recibe información al pulsar el boton. Para hacerlo funcionar de esta forma debo relacionar los GND de ambos arduinos. Con esto conseguimos que la señal de botón le cueste menos pasar por los pines 1 y 0 que por los que van al PC.

Si los dos arduinos van comunicados por fuente la información se envía correctamente. No se ilumina el led TX.

Si utilizo los puertos serial extra del arduino mega, tampoco hay problema de recepción de datos.