Appunti di programmazione su Arduino: comunicazione seriale

Serial.begin(rate)
Apre la porta seriale ed imposta la velocità di trasmissione (baud rate) seriale per trasmettere i dati. La velocità di trasmissione tipica per la comunicazione del computer è di 9600 bps (bps: baud rate per secondo)

Nota: attensione a non confondere la sigla bps con bit al secondo, nel nostro caso parliamo di boud, cioè simboli e ad ogni simbolo possono corrispondere più bit.

void setup()
{
   serial.begin(9600); // apre la porta seriale ed imposta
                       // la velocità di trasmissione a
                       // 9600 bps
}

Nota: quando si usa la comunicazione seriale, i pin digitali 0 (RX) e 1 (TX) non possono essere utilizzati contemporaneamente.

Serial.println(data)
Stampa i dati sulla porta seriale (invia i dati alla seriale e li visualizza) seguito da un ritorno a capo automatico ed un avanzamento linea.
Questo comando ha la stessa struttura della Serial.print() ma è più semplice da usare per la lettura sul serial monitor.

Serial.println(analogValue); // invia il valore di
                             // analogValue

Nota: Per ulteriori informazioni sui possibili utilizzi della Serial.println() e della Serial.print() fare riferimento al manuale on-line su Arduino.cc.

L’esempio che segue legge un valore dal pin analogico 0 ed invia i dati ogni secondo al computer:

void setup()
{
   Serial.begin(9600); // imposta la comunicazione seriale
                       // a 9600 pbs
}
void loop()
{
   Serial.println(analogRead(0)); // invia il valore analogico
   delay(1000);                   // fa una pausa di 1 secondo
}

Per le lezioni precedenti consultare la sezione Appunti di programmazione che trovate nella pagina Arduino di questo sito.

Questa voce è stata pubblicata in arduino e contrassegnata con , , , . Contrassegna il permalink.

4 risposte a Appunti di programmazione su Arduino: comunicazione seriale

  1. Daniele scrive:

    Buona sera, le scrivo in quanto assoluto neofita di Arduino, le chiedo cortesemente aiuto nel trovare una soluzione al problema che mi si presenta nella compialzione e sucessivo conrollo dello sketch.
    Vorrei collegare e quindi far funzionare il Vmusic2 con Arduino uno rev 3.
    Copiando alcuni sketch trovati in interner per provare come possa funzionare, mi si presenta l’errore su tutti gli sketch. Non roesco a capire cosa possa essere.
    Ma sopratutto non so come risoverlo. Mi puo aiutare, cortesemente?
    Mi sà indirizzare dove posso trovare istruzioni ed esempi di Vmusic2 con Arduino, in italiano?
    Di seguito l’errore che restituisce il controllo dello skeTch:
    sketch_feb12a.ino: In function ‘void selectTrack(int)’:
    sketch_feb12a:52: error: ‘BYTE’ was not declared in this scope

    Da Arduino 1.0, la parola chiave ‘BYTE’ non è più supportata.
    Per favore usate al suo posto Serial.write().

    Grazie per in anticipo per la sua pazienza
    Cordiali saluti

    Daniele Lepre

  2. marcello2 scrive:

    ho un problema:
    ho scritto questo scketch dove con un valore (tra 0 e 255) messo sul monitor seriale mi deve far accendere il led ad una certa luminosità per funziona dove sbaglio?
    questo è lo scketch:
    //esempio
    const int ledPin = 9; // the pin that the LED is attached to

    void setup()
    {
    // initialize the serial communication:
    Serial.begin(9600);
    // initialize the ledPin as an output:
    pinMode(ledPin, OUTPUT);
    Serial.flush();
    int brightness;
    }

    void loop() {
    byte brightness;

    // check if data has been sent from the computer:
    if (Serial.available()) {
    // read the most recent byte (which will be from 0 to 255):
    brightness = Serial.read();
    // set the brightness of the LED:
    analogWrite(ledPin, brightness);
    Serial.println(brightness,DEC);
    }
    }

  3. Francesco scrive:

    Ciao Michele. Ho collegato l’arduino Uno e display led ht1632c che funziona ma c’è problema da arduino uno fino 30 mt display led non funziona. Qualcosa aggiunge rx e rx? Grazie

Rispondi a Daniele Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.