Programmazione in movimento 1 - Le basi - 26

# Extra: La seriale - semplice

# esempio_10_serial.ino

    /* esempio_10_serial
     * Scketch di esempio
     */

    // Il LED collegato esternamente connesso al piedino DIGITALE 3.
    #define EXTLEDPIN  3

    /* Questa funzione viene chiamata per impostare la scheda, una sola volta
     */
    void setup () {
      pinMode(EXTLEDPIN, OUTPUT);  // Imposta il piedino del LED esterno in uscita
      Serial.begin(9600);          // Inizializzo la seriale a 9600 baud (bit per secondo)
    }

    /* Questa funzione viene ripetuta all'infinito
     */
    void loop () {
      int i;  // Definisce (crea) la variabile per il contatore
      /* 1) Inizialmente pongo i (il nostro contatore) ad 1
       * 2) Controllo che i sia inferiore a 255, altrimenti termino il ciclo
       * 3) Eseguo le azioni tra graffe
       * 4) Pongo i ad i+1 e ripeto da 2
       */
      Serial.print("Inizio ");           // Stampo "Inizio" senza andare a capo
      for (i = 1; i < 255; i = i+1) {
        analogWrite(EXTLEDPIN, i);       // Imposta il LED esterno alla luce indicata da i
        delay (1);                       // Attende un millisecondo
      }
      Serial.print(" Acceso");         // Stampo " Acceso" sulla stessa riga di "Inizio"
      digitalWrite(EXTLEDPIN, HIGH);   // Accende il LED esterno
      delay (256);                     // Attende 1/4 di secondo
      Serial.print(" Spengo");         // Stampo " Spengo" sulla stessa riga di "Inizio acceso"
      /* 1) Inizialmente pongo i (il nostro contatore) a 254
       * 2) Controllo che i sia superiore a 0, altrimenti termino il ciclo
       * 3) Eseguo le azioni tra graffe
       * 4) Pongo i ad i-1 e ripeto da 2
       */
      for (i = 254; i > 0; i = i-1) {
        analogWrite(EXTLEDPIN, i);     // Imposta il LED esterno alla luce indicata da i
        delay (1);                       // Attende un millisecondo
      }
      digitalWrite(EXTLEDPIN, LOW);    // Spegne il LED esterno
      Serial.println(" Fine");         // Stampo " Fine" sulla stessa riga di "Inizio Acceso Spengo", poi vado a capo
      delay (600);                     // Attende 3/4 di secondo
    }

© Ing. Stefano Salvi - released under FDL licence