Info via seriale per Debug/Controllo

Su un paio di Arduino Mega eseguo un po di automazione e per ogni evento/azione ecc mi scrive su seriale l'esito (ad esempio "tensione rilevata: 232V" oppure "stato porta serra: chiusa"). Su consiglio di qualcuno qua sul forum ho utilizzato la funzione Serial.print(F) per risparmiare memoria. Tutto funziona bene.
Visto che questi dati di debug li guardo una volta ogni non so quanti mesi (per lo meno solo quando eseguo degli aggiornamenti/aggiunte al codice) se dovessi "disattivare" questo debug il codice potrebbe girare più snello?
Intendo dire, nel momento in cui non ho bisogno di leggere dati di info/debug è consigliato disabilitare (metterei un semplice if con una booleana) oppure visto che funziona comunque tutto correttamente posso lasciar scrivere di continuo dati su seriale (che comunque non devo leggere)?

Grazie

Solitamente si usano le direttive del preprocessore, qualcosa del tipo:

#define DEBUG

void setup() {
#ifdef DEBUG
     Serial.println("Debug abilitato");
#endif
}

Se commenti la #define DEBUG le print(... non sono compilate e non vedrai messaggi sul serial monitor. Però se vuoi abilitarle devi ricompilare.

Ciao.

ciao,

come si può leggere in QUESTO post io faccio:

#define DEBUG 1

#if DEBUG
#define SERIALE Serial
#define ATTIVA SERIALE.begin(9600);
#define STAMPA_LN(x) SERIALE.println(F(x));
#else
#define ATTIVA
#define STAMPA_LN(x)
#endif

void setup() {
  ATTIVA
  STAMPA_LN("ciao");

}

quindi a parità di programma mettendo "0" od "1" su DEBUG stampi o no.

Che problemi ha il codice attuale? Ha veramente bisogno di "girare più snello"?
Se non leggi i messaggi tutto quello che succede è che vanno perduti ("...come lacrime nella pioggia..." cit.), ma se questo non ti crea problemi...

Ciao, Ale.

Io ho utilizzato il termine "debug" in modo non corretto. Quello che mi passa su seriale è in effetti il comando di tutto ciò che avviene. Ad esempio ogni 30 secondi mi dice "la temperatura interna è di x gradi", ad ogni variazione di assorbimento corrente mi dice "corrente assorbita x ampere"... oppure "serranda aperta"... "pompa ricircolo attiva" ecc ecc ecc. Diciamo che quasi ogni secondo ho una info scritta su seriale.
In realtà, tutte queste info (che voglio vedere e memorizzare) le ho sul server (utilizzo mqtt).
Via seriale (con serial monitor di Arduino) verifico solo di tanto in tanto quando vado a modificare lo sketch oppure se dovessi avere problemi di connesisone arduino-server.
I dati via seriale quindi li ignoro quasi totalmente.
Il programma funziona senza problemi da moooooolto tempo (circa 3 anni), oggi aggiungendo un sensorino microonde, vedevo il led della seriale lampeggiare e mi sono posto la domanda: visto che non mi serve (salvo al riavvio) se disabilito i messaggini seriali posso far girare il tutto in modo più "rilassato"? Insomma, l'idea è quella di eliminare qualcosa di cui non ho bisogno anche se con tutte le info via seriale il sistema gira bene.

Grazie!

Cris

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.