Accendere un LED da tastiera

Il comando di accensione del LED non sarà dato da un pulsante, bensì dalla tastiera del computer.

Prendiamo un LED e colleghiamolo alle porte adiacenti 13 e GND di Arduino rispettando le polarità.

 

Algoritmo in linguaggio naturale

Configurazione

   Imposta la 13 come porta di uscita;

   Attiva la comunicazione seriale con il monitor ad una velocità di 9600 bit al secondo;

Ciclo

   Solo Se sono stati inviati dati dalla linea di input del monitor seriale allora

      memorizza il dato disponibile nella variabile intera comando;

      Se la variabile comando == ‘a’ allora

         eroga 5V dal pin 13;

         scrivi sul monitor “LED acceso”;

      Se comando == ‘s’ allora

         eroga 0V dal pin 13

         scrivi sul monitor “LED spento”

 

Codice

Configurazione

Imposta la 13 come porta di uscita;

Attiva la comunicazione seriale con il monitor ad una velocità di 9600 bit al secondo;

  

void setup() {

   pinMode(13, OUTPUT);

   Serial.begin(9600 );
}  

Ciclo

Solo Se sono stati inviati dati dalla linea di input del monitor seriale allora

memorizza il dato disponibile nella variabile intera comando;

      Se la variabile comando == ‘a’ allora

         eroga 5V dal pin 13;

         scrivi sul monitor “LED acceso”;

     

Se comando == ‘s’ allora

         eroga 0V dal pin 13

         scrivi sul monitor “LED spento”

void loop() {

  if (Serial.available() > 0) {
//oppure if (Serial.available())

int comando = Serial.read();

if (comando == 'a') {

digitalWrite(13, HIGH);

Serial.println("LED acceso");

}

if (comando == 's') {

digitalWrite(13, LOW);

Serial.println("LED spento");

}

}

}



  •  Compila e carica il programma su Arduino;
  •  apri il monitor seriale;
  •  accertati che la velocità di trasmissione sia quella indicata nel programma;
  •  digita a ed invia: il led si accenderà e sul monitor comparirà la scritta ”Led acceso”;
  •  digita s ed invia: il led si spegnerà e sul monitor comparirà la scritta ”Led spento”;
  •  digita un carattere diverso da a ed s e non si avrà nessun effetto.