Ciao ragazzi
Mi stavo esercitando con uno sketch dove premendo un tasto (della tasiera del pc) accendi un led del circuito, e premendo un altro tasto spegni il suddetto led. Se pero' premi un'altro tasto, sul monitor esce la seguente scritta:
Tasto sconosciuto: tastopremuto (sarebbe la variabile, quindi il tasto che si e' premuto)
Premi H o L (i due tasti per mandare in High o Low il led)
Per fare cio' nello sketch e' scritto cosi:
Serial.print("Tasto sconosciuto: ");
Serial.print(tastopremuto);
Serial.println("Premi H o L");
Siccome io conosco Javascript, per risparmiare tempo ho provato a scrivere cosi:
Serial.println("Tasto sconosciuto: "+tastopremuto+"
Premi H o L");
Ma mi da errore...
In questo modo avrei avuto lo stesso risultato, ma scrivendo una sola "linea". Con il tag "
" si ha l'effetto di andare a capo. Ove non fosse possibile inserire il
, non fa niente. A me andrebbe bene anche solo tutto sulla stessa linea.
In javascript tutto cio' e' possibile. Con arduino no???
No, in C non puoi.
In Java/Javascript le stringhe sono degli oggetti mentre in C/C++ le stringhe sono vettori di caratteri null terminated.
Questo perchè C e C++ sono pensati per scrivere anche sistemi operativi e quindi sono "spartani" infatti non hanno neppure un gestore Garbage Collection. Java invece ha il G.C. ed è pensato per girare su PC con Sistema Operativo e con molta ram.
nid69ita:
No, in C non puoi.
In Java/Javascript le stringhe sono degli oggetti mentre in C/C++ le stringhe sono vettori di caratteri null terminated.
Questo perchè C e C++ sono pensati per scrivere anche sistemi operativi e quindi sono "spartani" infatti non hanno neppure un gestore Garbage Collection. Java invece ha il G.C. ed è pensato per girare su PC con Sistema Operativo e con molta ram.
Puoi eccome, il limite è la serial.print() non il C/C++, se usi la sprintf() per creare la stringa, poi la invii sulla seriale con serial.print(), puoi unire assieme testo/i e variabile/i formattati come ti pare.
Per arduino puoi o usare l'oggetto String (con la S maiuscola) oppure usare un array di char (char[]) come si fa tradizionalmente in C.
Guardati la reference del sito, ci sono parecchi esempi.
In tutto questo, per andare a capo all'interno di una stringa non si usa
... quello è un TAG HTML. Per andare a capo devi usare la sequenza \n. Quindi nel tuo caso devi scrivere
Serial.println("CIAO\nBELLO");
Per ottenere:
CIAO
BELLO