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();

 

Link alla libreria Serial: Arduino Language Reference

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:
BINOCTDEC 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