Arduino Esercizio N°5

Collegare la scheda Arduino in modo che abbia un input digitale costituito da due pulsanti ed un output digitale costituito da un led.
Quando viene premuto un pulsante il led si deve accendere, se invece, viene premuto l’altro pulsante il led si deve spegnere. 

Il circuito richiesto potrebbe avere il seguente aspetto:

 

  • 2 pulsanti collegati ai pin 8 e 9.
  • Resistenza da 270 Ω.
  • Un LED collegato al pin di uscita 5.
  • Una bread-board mini. 

Premendo il pulsante sul pin 8 il led si accende; se si continua a premere lo stesso pulsante più volte il led rimane acceso.
Premendo il pulsante sul pin 9 il led si spegne.
Il codice è molto breve e facilmente leggibile: 

void setup() {
   pinMode(5, OUTPUT);
   pinMode(9, INPUT_PULLUP);
   pinMode(8, INPUT_PULLUP);
}
void loop() {
  if (digitalRead(9) == LOW)digitalWrite(5, HIGH);
  if (digitalRead(8) == LOW)digitalWrite(5, LOW);
}

Nella funzione setup() si nota la direttiva INPUT_PULLUP per i collegamenti dei due pulsanti, questa istruzione imposta di default gli ingressi dei due pin al valore HIGH.
Nel programma principale ci sono poi, solo due istruzioni: la prima dice che se si preme il pulsante del led 9 il led si accende.

digitalWrite(5, HIGH);

la seconda dice che se si preme il pulsante del led 8 il led si spegne.

digitalWrite(5, LOW);

Il comportamento del circuito può essere verificato dal seguente modulo:

 

Arduino Esercizio N°1

Arduino Esercizio N°1

Scrivere un programma per la scheda Arduino che mostri l’utilizzo del serial monitor per controllare lo stato di una periferica.
Possiamo prendere l’esempio del LED lampeggiante che rappresenta anche il circuito più semplice:

  •  LED collegato dal pin 13 a terra.
  • Resistenza da 220 Ω collegata tra il LED e la massa.

 poi modifichiamo il codice:

void setup(){
   pinMode(13, OUTPUT);
   Serial.begin(9600);
}
void loop(){
   digitalWrite(13, HIGH);//accende il LED
   delay(1000);//aspetta 1s
   Serial.println(digitalRead(13));//monitor
   digitalWrite(13, LOW);//spegne il LED
   delay(1000);//aspetta 1s
   Serial.println(digitalRead(13));//monitor
}

per poter usare il serial monitor è indispensabile che nella funzione setup() sia presente l’istruzione:

Serial.begin(9600);

che permette di intraprendere la comunicazione tra la scheda Arduino e l’esterno tramite la porta seriale.
Nel corpo del programma, cioè all’interno della funzione loop() che viene eseguita per 16.000 volte al secondo deve essere inserita l’istruzione

Serial.println(digitalRead(13));

che stampa in output lo stato del pin interessato. L’output visualizzato attraverso il simulatore di Tinkercad è il seguente:


come si vede quando il LED è acceso lo stato del pin è 1 (HIGH) quando il led è spento lo stato del pin è 0 (LOW).

Per attivare il serial monitor dentro il simulatore Tinkercad bisogna fare clic sull’icona     e poi sull’icona .