Existem tantas bibliotecas seriais de software, quais são as diferenças entre elas? E qual eu posso usar com o meu Arduino Nano? Para o meu Arduino Nano, preciso de uma porta serial de hardware e uma porta serial de software a uma taxa de transmissão de 115200.
Em quais pinos do Arduino Nano posso usar a biblioteca serial do software?
serial
arduino-nano
uart
William Roy
fonte
fonte
key=getKey();
meu GSM (usando os pinos 2 e 3 do Arduino Uno) não recebe SMS. Ajude-me, por favor.Respostas:
Esta resposta lista as 4 opções básicas:
HardwareSerial
, sempre o melhor. Basta usar aSerial
variável predefinida . Em alguns Arduinos, existem portas HardwareSerial extras, chamadasSerial1
,Serial2
etc. O Nano tem apenasSerial
.AltSoftSerial
, o melhor das bibliotecas seriais de software. Apenas uma instância é permitida e deve ser usada em um dos pinos de Captura de entrada (pinos 8 e 9 para um Nano).Meu
NeoSWSerial
é o próximo melhor. Funciona com dois pinos, mas apenas nas taxas de transmissão 9600, 19200 e 38400.SoftwareSerial
é a pior escolha. Funciona com dois pinos, mas é muito ineficiente. Desativa interrupções durante todo o tempo em que um personagem está sendo enviado OU recebido, e não pode fazer as duas coisas ao mesmo tempo (ao contrário de todas as outras opções em série). Isso pode interferir em outras partes do seu esboço, em outras comunicações do dispositivo ou em bibliotecas.Se você pudesse usar uma taxa de transmissão mais lenta, poderia manter as impressões de depuração ativadas
Serial
e usar umAltSoftSerial
ou outroNeoSWSerial
para o seu dispositivo.Mas se você precisar usar o 115200, a única opção confiável é
Serial
. EmboraAltSoftSerial
eSoftwareSerial
permitam essa taxa de transmissão, eles podem não enviar / receber dados corretamente.Nesse caso, sugiro usar
Serial
o dispositivo 115200. A menos que você esteja usando um ISP, será necessário desconectar o dispositivo para fazer upload de um novo esboço por USB.Em seguida, use
AltSoftSerial
ouNeoSWSerial
para suas instruções de depuração. Você precisará de um adaptador TTL de série para USB (também conhecido como FTDI) nos pinos selecionados para conectar ao PC. OSerial Monitor
ou outro programa emulador de terminal lerá a partir dessa porta USB COM.fonte
NeoICSerial
apenas adiciona oattachInterrupt
método aAltSoftSerial
. Você provavelmente não precisa lidar com cada personagem em uma interrupção. Basta usarAltSoftSerial
e chamar oavailable()
e, em seguida,read()
se um char estiver pronto. Da mesma forma,NeoHWSerial
adiciona o mesmoattachInterrupt
recurso ao núcleoHardwareSerial
. No entanto,NeoSWSerial
é uma classe completamente diferente (também possui oattachInterrupt
recurso).O software serial emula uma porta serial, diferente de uma porta nativa que possui registro para salvar todos os bits em ordem e eles definem um sinalizador para chamar o loop principal; um serial de software não tem nada disso. A série de software deve receber todos os bits, um por um, para que você leia uma porta digital, aguarde um tempo específico e leia o pino digital novamente. Você deve fazer isso 10 vezes (1 bit de início, 8 bits de dados e 1 bit final). O tempo é muito importante. Para usar uma série de software, você precisa se preocupar mais com o desempenho.
Você pode usar um pino de interrupção digital para o pino RX, para que seja "chamado" na borda inferior (bit inicial) e receba os 8 bits.
fonte