Hola que tal tengo algunas dudas sobre el funcionamiento de los pines 0 y 1 en arduino UNO.
En mis programas de arduino e usado la librería SoftwareSerial para usar X pin como TX y RX.
Me llego la duda de leer un poco sobre los pines y me entere de que los pines físicos para arduino uno son solo 0 y 1 para la comunicación serial pero gracias a la librería antes mencionada se pueden usar otros y tener mas módulos conectados.
Mi duda esta en que si quiero usar los pines 0 y 1 para conectar algún modulo como se configura esos pines y como se manejarían ya que cuando uso la librería la uso de esta manera
SoftwareSerial mySerial(10,11); // defino los pines RX, TX
mySerial.begin(19200);le doy una velocidad
mySerial.available() ya los uso de la manera que quiera leer los datos
mySerial.read()
Otra duda es si algún modo es mejor que otro, si usar los pines 0 y 1 o definir los pines con la librería
Si usas esos pines con algun modulo no podras usar el Serial Monitor y supongo que tambien te puede dar problemas al subir un nuevo sketch a la placa si esos pines estan recibiendo señales de otro modulo.En caso de que no uses el Serial Monitor ,se usan como los del SoftwareSerial ,rx del arduino con tx del modulo a conectar y tx del arduino con rx del modulo y se usa el objeto Serial:
Pues el uso de SoftwareSerial deriva precisamente del uso del Serial físico. En cuanto a su uso, seguro que las instrucciones te suenan:
Serial.begin(19200); // Inicio de Serial (Pines 0 y 1)
Serial.available(); // Comprobar si hay datos recibidos
Serial.read(); // Leer datos
Probablemente te habrás dado cuenta de que esto mismo es lo que se utiliza para trabajar con el monitor serie. Efectivamente, el puerto serie está mapeado tanto a los pines 0-1 como al USB, por lo que si necesitas el monitor serie en tu programa, va a interferir y verse interferido por la actividad en los pines 0-1. Esto suele suponer un inconveniente en el UNO, pues sólo dispone de Serial; pero por ejemplo el MEGA dispone de Serial1, Serial2 y Serial3.
En cuanto a cuál usar, Serial hardware o SoftwareSerial; por supuesto, el hardware si tienes disponible alguno (recuerda que en el UNO sólo tienes uno a medias con el monitor). La razón es que mientras el SoftwareSerial hace que el arduino esté constantemente leyendo/escribiendo en sus pines (aproximadamente diez lecturas o escrituras por cada byte transmitido o recibido) y controlando el tiempo que está cada pin en cada estado... El serial hardware lo realiza un circuito auxiliar del arduino que sólo lo "distrae" cuando ha terminado de enviar o recibir un dato. Resumiendo: más tiempo de proceso disponible para otras cosas.
Si quieres conocer un poco más sobre el Serial hardware, puedes echar un vistazo a la referencia.