Paso 1: Sobre librería SoftwareSerial
La librería SoftwareSerial ha sido desarrollada para permitir la comunicación serial en otros pines digitales de Arduino, utilizando el software para replicar la funcionalidad (de ahí el nombre "SoftwareSerial"). Es posible tener varios puertos serial software con velocidades de hasta 115.200 bps. Un parámetro permite señalización invertido para dispositivos que requieren de dicho protocolo.
La versión de SoftwareSerial incluido en 1.0 y más adelante se basa en la biblioteca de NewSoftSerial desarrollada por Mikal Hart.SoftwareSerial y principio de funcionamiento de la biblioteca de NewSoftSerial es el mismo. Biblioteca de NewSoftSerial es una versión antigua de librería SoftwareSerial.
Hay cierta limitación en Librería SoftwareSerial.
La biblioteca tiene las siguientes limitaciones conocidas:
Si utiliza múltiples puertos de serie de software, sólo puede recibir datos a la vez.
No todos los pines con el apoyo de Mega y Mega 2560 cambian interrumpe, tan sólo las siguientes pueden utilizarse para RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).
No todos los pines en el Leonardo y soporte Micro cambian interrumpe, tan sólo las siguientes pueden utilizarse para RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
Ejemplo: