Esta respuesta enumera las 4 opciones básicas:
HardwareSerial
, siempre lo mejor. Simplemente use la Serial
variable predefinida . En algunas Arduino, hay puertos HardwareSerial adicionales, llamadas Serial1
, Serial2
etc. 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 NeoSWSerial
es el siguiente mejor. Funciona en dos pines, pero solo a velocidades de baudios de 9600, 19200 y 38400.
SoftwareSerial
Es 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 Serial
y usar cualquiera AltSoftSerial
o NeoSWSerial
para tu dispositivo.
Pero si tiene que usar 115200, la única opción confiable es Serial
. Aunque AltSoftSerial
y SoftwareSerial
permita esa velocidad en baudios, es posible que no envíen / reciban datos correctamente.
En ese caso, sugeriría usar Serial
para 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 AltSoftSerial
o NeoSWSerial
para 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 Monitor
u 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.