Io mi ero fatto una piccola applicazione per ricevere i caratteri dalla seriale in C#.
Per quello che conosco io,le possibilità sono:
- Stampi una serie di righe vuote, per cancellare tutto..... :o
- Usi un applicazione a parte ad esempio in processing
- Cambi terminale ( monitor) perchè serial monitor non supporta alcuni caratteri speciali.
mentre 'putty' li supporta. Installa putty. http://www.putty.org/
Esempio che simula l'invio di un dato sulla seriale( utilizzare con lo sketch processing oppure con putty):
Lo puoi usare con lo sketch processing o con putty ( per putty elimina il carattere di commento come
spiegato nello sketch infondo)
int cont;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200); // seriale a 115200
Serial.println("Hello !");
delay(1000); // testa la seriale
}
void loop() {
// put your main code here, to run repeatedly:
cont++;
Serial.println(cont);
delay(5000); // simula il tempo tra una azione ed un altra.
/*
* Se vuoi testare putty con questo sketch Arduino. Togli il commento alle righe sottostanti.
Serial.write(27);
Serial.print("[2J");
Serial.write(27);
Serial.print("[H");
*/
}
sketch Processing ( basic )
import processing.serial.*;
Serial arduino; // nuova oggetto di tipo 'seriale'
int lf = 10; // carattere di Linefeed in codice ascii
String val=null; // Dato ricevuto da arduino
String printVal=null; // variabile che contiene il valore del dato ricevuto da arduino
String portName = Serial.list()[0]; // <-- selezionare la porta corretta
boolean datoOk; // Alza un flag quando arriva il dato, quindi inizia il conteggio ( 4 secondi), dopo cancella tutto.
int nByte; // contiene l'eventuale numero di byte (dato) presente sulla seriale. Se maggiore di zero allora NON lo considera nullo.
int cont; // Timer per determinare quanti secondi sono trascorsi dopo l'arrivo del dato
void setup ()
{
size(500, 500);
background(255);
fill(50);
frameRate(1); // 1 frame per ogni secondo. Quindi se cont = 4 , son trascorsi 4 secondi
arduino = new Serial(this, portName, 115200);
arduino.clear();
val = arduino.readStringUntil(lf);
val = null;
printArray(Serial.list()); // stampa le porte disponibili
}
void draw()
{
nByte = arduino.available() ;
if (datoOk == true) cont++;
if (cont>3) { cont = 0; background(255); } // cancella ricolorando lo sfondo...
if ( nByte > 0){
val = arduino.readStringUntil(lf); // legge il valore del dato appena arrivato
if (val !=null)
{
printVal = val;
println(val);
println(nByte);
text(val, 200, 200);
datoOk = true;
}
}
}
Altrimenti installa putty e nel tuo sketch quando devi cancellare scrivi:
Serial.write(27);
Serial.print("[2J");
Serial.write(27);
Serial.print("[H");