Go Down

Topic: Serial.begin() (Read 153 times) previous topic - next topic

Alejandrokrs

Buenas Noches, tengo la siguiente inquietud. Aparentemente entiendo la razón por la cual para procesos rápidos, aveces es necesario trabajar con valores de Serial.begin mayores a 9600. Pero existe o contrario? Es decir, hay casos en los que no funciona con valores altos? Si no es así, es decir si siempre funciona con valores altos, porque esta disponible la opción de elegir en vez de trabajar siempre con 115200?

surbyte

Porque hay otros Arduinos mas rápidos que los habituales que si pueden trabajar con BAUDIOS mas altos. UNO/NANO/Mega en general no. Dije en general, hay opciones en las que si se puede.

Por ejemplo el ESP8266-12 o nodemcu yo lo uso a 900K o algo asi.

Alejandrokrs

Hola, gracias por contestar. No entiendo la respuesta. Talvez no redacté claramente la pregunta. Aquí voy de nuevo.
Me consta que aún arduino uno puede trabajar a 57600 baudios, entonces supongo que cualquier otro modelo de arduino también puede trabajar a 57600 baudios (ya que arduino uno entiendo que es el más alemental). 
Por otro lado entiendo que si un programa funciona a 9600 baudios, también tiene que funcionar a 57600.
Si lo último es cierto, para que esta disponible una opción como 9600?

surbyte

Quote
Por otro lado entiendo que si un programa funciona a 9600 baudios, también tiene que funcionar a 57600.
Si lo último es cierto, para que esta disponible una opción como 9600?
Un programa funciona a la velocidad que tu establezcas para hacerlo.
Si defines 9600 solo funcionará a esa velocidad.
Si defines 57600 sera a esa velocidad.

Yo te estaba hablado erroneamente de las velocidades para subirle datos que en general tambien establecen lo que es posible o no alcanzar.

Un ejemplo que no se aplica a esto útlimo es: A un NANO no puedes programarlo a 115200. La velocidad maxima para subirle un sketch de 57600 bps sin embargo, puedes definir 115200 bps para que envie datos por el puerto serie. Me consta.

Un UNO en cambio puedes hacer las dos cosas a 115200. Programarlo y/o que envie/reciba datos a 115200 bps.

Yo hablaba de un ESP8266 que lo tengo a 900k para subirle datos y nunca probe a que velocidad recibe/envia por puerto serie.

Kike_GL

La velocidad que pongas en Serial.begin() es para la comunicacion serie durante la ejecucion del boceto asi que solo depende de la cantidad de datos a transferir.

Prueba este codigo:
Code: [Select]

void setup(){
   Serial.begin(115200);
   for (byte n=0; n<256; n++){
        Serial.print("Numero: ");
        Serial.println(n);
        //delay(200);
   }
}
void loop(){
   //nada
}


Logicamente el monitor serie en el IDE lo debes poner a la misma velocidad que pongas en Serial.begin() o veras caracteres extraños.

Esta completa la data en el monitor o notas errores ?
Ahora baja la velocidad del bucle descomentando delay() o baja la velocidad del puerto serie.
Saludos, Kike_GL

Go Up