Nextion no lib, non accetta comandi

Per ridure l'occupazione di memoria ho deciso di non utilizzare le librerie Nextion.

E' solito progetto che usa due schede Arduino UNO che colloquiano via RS485 una pilota due servi RC, porte software, l'altra un display LCD 2*16 per il debug che verrà eliminato alla fine, il display Nextion e due encoder rotativi.

Ho scritto una semplice funzione che quando richiesto invia due valori L e C tra 0 e 180, a due gauge e due caselle testo.

Il display ignora questi comandi che utilizzando un logic analyzer collegato al posto del Nextion sono inviati regolarmente ovvero come dal costrutto della funzione.

Qualcuno può buttare un occhio su questa funzione e vedere cosa ho sbagliato.
I nomi dei componenti e della pagina sono corretti ed anche la velocità di trasmissione.

void nextion_show_pos(int c, int l)
{
Serial.print("page0.Cgauge.val=" + String(c) );
Serial.write( 0xff);
Serial.write( 0xff);
Serial.write( 0xff);

Serial.print("page0.Cgradi.val=" + String(c));
Serial.write( 0xff);
Serial.write( 0xff);
Serial.write( 0xff);

Serial.print("page0.Lgauge.val=" + String(l));
Serial.write( 0xff);
Serial.write( 0xff);
Serial.write( 0xff);

Serial.print("page0.Lgradi.val=" + String(l));
Serial.write( 0xff);
Serial.write( 0xff);
Serial.write( 0xff);

}

Grazie e buon anno
Carlo

Il nextion è collegato ai pin 0 e 1?

Ciao, Ale.

>carlofiv: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More → Modify che si trova in basso a destra del tuo post) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

>ilguargua: Ale, cortesemente non rispondere a chi prima non rispetta il regolamento … grazie :wink:

Fatto.

Ancora un po' e mi schiaffi dietro la LIM. :slight_smile:

ilguargua:
Il nextion è collegato ai pin 0 e 1?

Ciao, Ale.

Pin 0 e 1, una banale procedura di debug mi restituisce il feedback corretto quando tocco un tasto sullo schermo. Quindi la comunicazione display >> Arduino è operativa non l'opposto o non viene correttamente interpretata dal display.
Anche la comunicazione RS485 (software serial su pin 11 e 12) opera perfettamente dal modulo con il display verso l'altro con i due servo collegati.

Stanotte sono andato a letto alle 3.30 per risolvere ma senza che servisse.

carlofiv:
Ancora un po’ e mi schiaffi dietro la LIM. :slight_smile:

Ma no, dai … più semplicemente BANNO chi non rispetta il regolamento … :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

Guglielmo

Controlla subito dopo l'invio del comando se il display ti riponde qualcosa, in genere dovrebbe rispondere perlomeno in caso d'errore.
Prova nel simulatore dell'editor ad inserire le stesse stringhe che invii, vedi se anche li succede qualcosa, considera anche che il simulatore può funzionare con input dall'MCU, magari ti aiuta per il debug.
Per ora non mi viene in mente altro, in genere una prima prova che faccio per vedere se i comandi funzionano è inviare il comando di reset, perchè non dipende dalla pagina o altro, e il risultato è immediatamente visibile (il display si spenge e si riaccende), quindi Serial.print("rest"); seguito dai soliti tre 0xFF .

Ciao, Ale.

Ho risolto.

Come diceva il mio prof. di radiotecnica il troppo bene non sempre va bene.

Ho una breadboard personalizzata al quale ho applicato oltre agli encoder, display lcd due microinterruttori a levetta che utilizzavo normalmente per forzare esternamente un pin.
Mi sono detto ma perche non utilizzarli per scollegare la seriale del display quando programmo la board arduino, peccato che avevo in serire una resistenza da 10K su entrambi.
L'analizzatore logico ha una alta impedenza d'ingresso ed non dava problemi quando collegavo il display l'ampiezza del segnale spariva e per capirlo mi ci è voluto l'oscilloscopio.

Grazie a tutti.