Certamente, la cosa migliore è implementare una seconda seriale o con la SoftwareSerial o con l'ottima AltSoftwareSerial (che è decisamente superiore all'altra).
Attenzione che se usi la seriale per il GPS poi perdi la possibilità di usarla per i messaggi di debug e ogni qualvolta dovrai caricare un nuovo programma su Arduino dovrai sconnettere il GPS
Si ti sfugge che l'USB è collegata, tramite apposito adattatore, alla seriale hardware di Arduino (Pin 0 e 1) quindi se ci attacchi qualcosa che interferisce con la comunicazione l'upload del nuovo programma ha ottime probabilità di fallire.
O mamma mia…..
grazie dell’informazione comunque.
Diciamo che comunque una volta finito il tutto, non dovrei più mettere mano al programma, e ovviamente a questo punto prevedo un connettore rapido per disconnettere ciò che sarà collegato alla seriale hardware
Il problema non è alla fine di tutto è nel mentre quando dovrai sistemare il programma affinché funzioni come desideri e senza poter debuggare è abbastanza drammatico.
Puoi seguire la strategia di collegare solo il GPS via seriale software sistemare il programma, poi fare un secondo programma e collegare via seriale software solo il display e poi unirli e cambiare la seriale in uso al GPS passando a quella hardware.
Ma la cosa più semplice potrebbe essere quella di collegare entrambe i dispositivi a due seriali software consci del fatto che la cosa ha le sue limitazioni e l'implementazione non sarà immediata ma dovrai studiare un po' le specifiche.
Oppure passa a qualche altra versione di Arduino dotato di due o più seriali hardware in modo da preservare la primaria a scopo di debug e upload software
Allora, intanto la AltSoftwareSerial (che è decisamente meglio della classica SoftwareSerial) si può usare SOLO per UNA porta aggiuntiva dato che ... ha i pin fissi ...
Scartata quindi la AltSoftwareSerial devi usare la SoftwareSerial che puoi istanziare più volte su pin a tua scelta leggendo attentamente il reference della libreria per capire, in funzione della scheda che si usa, i pin utilizzabili, ma ... c'è un'altra limitazione ... nel caso di più SoftwareSerial UNA sola può essere attiva in ricezione, quale lo si decide dinamicamente, ma comunque se si attiva l'una, l'altra non riceve e viceversa, quindi ...
... tieni tutto ben presente quando sviluppi il tuo codice e ricorda inoltre che, la SoftwareSerial, è affidabile sino a 9600 bps, oltre da problemi, quindi devi limitarti a tale velocità.
.... mah ... se non deve ricevere "simultaneamnete" può anche lasciare tutto su due SoftwareSerial e passare alternativamente dall'una all'altra quando c'è da ricevere. Il 90% del tempo starà sul GPS a ricevere le coordinate e, se deve riceve da Nextion, commuta temporaneamente e poi torna sul GPS.
Il nextion in linea di massima non trasmette nulla ad Arduino, ma visualizza dati che arrivano dal GPS e da altri sensori collegati a ingressi analogici.
Quindi a questo punto proverò la soluzione SoftwareSerial.
Il problema con i Nextion che quando trasmettono se non sei in ascolto sulla seriale software nel momento della trasmissione perdi totalmente il messaggio.
Quindi finché non ci sono oggetti sul nextion che devono inviare dati ma solo ricevere non ci sono problemi, così come se ci sono pulsanti che cambiano pagina e tutta la grafica è autonoma, quindi Arduino scrive solo su oggetti globali, ma se devi comunicare con Arduino allora la doppia seriale software non è una strada percorribile