Libreria Serial
Teoria
Serial
E’ una libreria integrata direttamente nell’ambiente che non ha bisogno di essere dichiarata. La libreria mette a disposizine una serie di funzioni che possono essere richiamate tramite il comando:
Serial.nomeDellaFunzione();
Teoria
Funzioni principali
Serial.begin(velocità)
- Imposta la velocità di trasmissione dati in bit al secondo (baud) per la trasmissione seriale.
- Per comunicare con il computer ci sono diverse velocità ammissibili: 300, 1200, 2400, 4800, 9600, 14400, 57600, 115200.
- La configurazione tipica per le porte seriali è 9600 baud.
Esempio:
Serial.begin(9600);
Serial.print(valore,formato)
Serial.println(valore,formato)
- Serve a stampare sul monitor un messaggio o una variabile in un determinato formato.
- Il formato è un parametro opzionale che, per i numeri, può essere:
| BIN, OCT, DEC o HEX | se il valore è intero |
|
Un numero |
se il valore è un numero in virgola mobile e rappresenta le cifre decimali da visualizzare |
- println() esegue la stessa azione di print() aggiungendo in fondo alla stringa inserita come parametro il carattere di nuova linea (a capo); in sostanza fa in modo che il successivo messaggio inviato al monitor venga scritto partendo da una nuova riga.
Esempi:
Serial.print(78); scrive 78
Serial.print(byte(78)); scrive N (78 è il valore ASCII)
Serial.print('N'); scrive N
Serial.print("Ciao mondo!"); scrive Ciao mondo!
Serial.print(78, BIN); scrive 1001110
Serial.println(5.72143,0); scrive 5
Serial.println(5.72143,2); scrive 5.72
Serial.println(5.72143,4); scrive 5.7214
Serial.read()
- Legge dalla seriale un dato che può essere utilizzato successivamente nello SKETCH.
- Il valore letto, per essere utilizzato, deve essere assegnato ad una variabile.
- La funzione non necessita di alcun parametro.
Esempio:
ValoreLetto = Serial.read();
Serial.available()
-
Restituisce un int il cui valore è pari al numero di byte (caratteri) disponibili nel buffer di lettura.
-
La funzione non richiede alcun parametro.
Esempio
if (Serial.available() > 0) {
Valore = Serial.read();
Serial.print("Ho ricevuto: ");
Serial.println(Val,DEC);
}
Serial.flush()
- Svuota il buffer dei dati seriali in entrata.
- Ogni chiamata di Serial.read() o Serial.available() restituirà solo i dati ricevuti dopo la chiamata a Serial.flush().
- La funzione non richiede alcun parametro e non restituisce alcun valore.
Intervento del docente
Se necessario, descrivere meglio il comportamento dopo la versione 1.0
Serial.end()
-
Disabilita la comunicazione seriale.
-
I pin RX e TX possono essere nuovamente utilizzati come I/O generali.
-
Per riabilitare la comunicazione seriale basta nuovamente richiamare la funzione Serial.begin().
-
La funzione non richiede alcun parametro e non restituisce alcun valore.
Intervento del docente
ESEMPI. A partire dall' Esercizio 007, in quasi tutti gli sketch, è stata abilitata la comunicazione seriale. Esercizi di riferimento 007 e 011.
Per le altre funzioni fare riferimento a: http://arduino.cc/en/Reference/Serial