Hay tantas bibliotecas en serie de software, ¿cuáles son las diferencias entre ellas? ¿Y cuál puedo usar con mi Arduino Nano? Para mi Arduino Nano necesito un puerto serie de hardware y un puerto serie de software a una velocidad en baudios de 115200.
¿En qué pines del Arduino Nano puedo usar la biblioteca serial del software?
serial
arduino-nano
uart
William Roy
fuente
fuente
key=getKey();
mi GSM (usando el pin 2 y 3 Arduino Uno) no recibe SMS. Ayudame por favor.Respuestas:
Esta respuesta enumera las 4 opciones básicas:
HardwareSerial
, siempre lo mejor. Simplemente use laSerial
variable predefinida . En algunas Arduino, hay puertos HardwareSerial adicionales, llamadasSerial1
,Serial2
etc. El Nano tiene solamenteSerial
.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 cualquieraAltSoftSerial
oNeoSWSerial
para tu dispositivo.Pero si tiene que usar 115200, la única opción confiable es
Serial
. AunqueAltSoftSerial
ySoftwareSerial
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
oNeoSWSerial
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. ElSerial Monitor
u otro programa de emulador de Terminal leerá desde ese puerto USB COM.fuente
NeoICSerial
solo agrega elattachInterrupt
método aAltSoftSerial
. Probablemente no necesite manejar cada personaje en una interrupción. Simplemente useAltSoftSerial
y llame alavailable()
y luegoread()
si un char está listo. Del mismo modo,NeoHWSerial
agrega la mismaattachInterrupt
característica al núcleoHardwareSerial
. Sin embargo,NeoSWSerial
es una clase completamente diferente (también tiene laattachInterrupt
función).El software en serie emula un puerto en serie, diferente de un puerto nativo que tiene un registro para guardar todos los bits en orden y establece una bandera para llamar al bucle principal, una serie de software no tiene nada de eso. El software de serie debe recibir todos los bits, uno por uno, por lo que debe leer un puerto digital, esperar un tiempo específico y volver a leer el pin digital. Debe hacerlo 10 veces (1 bit de inicio, 8 bits de datos y 1 bit de finalización). El tiempo es muy importante. Para usar una serie de software, debe preocuparse más por el rendimiento.
Puede usar un pin de interrupción digital para el pin RX, por lo que se le "llama" en el borde inferior (bit de inicio) y recibe los 8 bits.
fuente