Esta respuesta enumera las 4 opciones básicas:
HardwareSerial, siempre lo mejor. Simplemente use la Serialvariable predefinida . En algunas Arduino, hay puertos HardwareSerial adicionales, llamadas Serial1, Serial2etc. El Nano tiene solamente Serial.
AltSoftSerial, la mejor de las bibliotecas seriales de software. Solo se permite una instancia, y debe usarse en uno de los pines de captura de entrada (pines 8 y 9 para un Nano).
Mi NeoSWSeriales el siguiente mejor. Funciona en dos pines, pero solo a velocidades de baudios de 9600, 19200 y 38400.
SoftwareSerialEs la peor opción. Funciona en cualquiera de los dos pines, pero es muy ineficiente. Inhabilita las interrupciones durante todo el tiempo que se envía o recibe un personaje , y no puede hacer ambas cosas al mismo tiempo (a diferencia de todas las otras opciones en serie). Esto puede interferir con otras partes de su boceto, otras comunicaciones del dispositivo o con bibliotecas.
Si pudieras usar una velocidad de transmisión más lenta, podrías mantener tus impresiones de depuración Serialy usar cualquiera AltSoftSerialo NeoSWSerialpara tu dispositivo.
Pero si tiene que usar 115200, la única opción confiable es Serial. Aunque AltSoftSerialy SoftwareSerialpermita esa velocidad en baudios, es posible que no envíen / reciban datos correctamente.
En ese caso, sugeriría usar Serialpara el dispositivo 115200. A menos que esté utilizando un ISP, deberá desconectar el dispositivo para cargar un nuevo boceto a través de USB.
Luego use AltSoftSerialo NeoSWSerialpara sus declaraciones de depuración. Necesitará un adaptador TTL de serie a USB (también conocido como FTDI) en los pines seleccionados para conectarse a la PC. El Serial Monitoru otro programa de emulador de Terminal leerá desde ese puerto USB COM.
key=getKey();mi GSM (usando el pin 2 y 3 Arduino Uno) no recibe SMS. Ayudame por favor.