01. Arduino
Esercizio 1
A partire dal circuito in figura, implementare uno Sketch che implementa il seguente comportamento:
ad ogni pressione impulsiva del pulsante il sistema cambia stato in modo ciclico
gli stati da gestire sono i seguenti:
stato 0: led spento
stato 1: led acceso fisso
stato 2: led lampeggiante lento (intermittenza ogni 2 secondi)
stato 3: led lampeggiante veloce (intermittenza ogni decimo di secondi)
────══════♦☆♦══════────
Esercizio 2
A partire dal circuito in figura, implementare uno Sketch che implementa il seguente comportamento:
ad ogni pressione impulsiva del pulsante il sistema cambia stato in modo ciclico; il cambio di stato è segnalato con un lampeggio veloce del led (spento/acceso/spento ad intervalli di 1 decimo di secondo), durante il quale sono ignorati eventuali pressioni del pulsante
gli stati da gestire sono i seguenti:
stato 0: led spento
stato 1: led acceso fisso
stato 2: led lampeggiante lento (intermittenza ogni 2 secondi)
────══════♦☆♦══════────
Esercizio 3
Modificare il circuito dell'esercizio 2 introducendo un nuovo pulsante.
Implementare uno Sketch che, sul nuovo circuito, implementa il seguente comportamento:
premendo il pulsante sinistro in modo impulsivo il led si spegne
premendo il pulsante destro in modo impulsivo il led si accende in modo permanente
────══════♦☆♦══════────
Esercizio 4
Modificare il circuito dell'esercizio 2 introducendo:
3 nuovi led (in tutto saranno presenti 4 led)
un nuovo pulsante (in tutto saranno presenti 2 pulsanti)
Implementare uno Sketch che, sul nuovo circuito, implementa il seguente comportamento:
all'avvio è acceso il primo led e tutti gli altri sono spenti
premendo il pulsante sinistro in modo impulsivo si spegne il led corrente e si accende il led successivo (si consideri la successione dei led in modo circolare)
premendo il pulsante destro in modo impulsivo si spegne il led corrente e si accende il led precedente (si consideri la successione dei led in modo circolare)
────══════♦☆♦══════────
Esercizio 5
Modificare il circuito dell'esercizio 2 introducendo:
5 nuovi led (in tutto saranno presenti 6 led)
un nuovo pulsante (in tutto saranno presenti 2 pulsanti)
Implementare uno Sketch che, sul nuovo circuito, implementa il seguente comportamento:
premendo il pulsante sinistro in modo impulsivo si incrementa un contatore nell'aritmetica modulare su base 64 (cioè si incrementa il contatore e si applica l'operatore % 64)
premendo il pulsante destro in modo impulsivo si decrementa un contatore nell'aritmetica modulare su base 64 (cioè si decrementa il contatore e si applica l'operatore % 64)
i led devono rappresentare il valore del contatore in base 2 (acceso = 1 / spento = 0)
il contatore, all'avvio, vale 0
Suggerimento:
La funzione number riportata di seguito converte un numero decimale compreso tra 0 e 63 (estremi compresi) in binario. Dopo l'invocazione della funzione, l'array leds[] conterrà la rappresentazione del numero in binario.
leds[0] corrisponde al bit meno significativo, leds[5] al bit più significativo.
int leds[6];
void number(int n)
{
int i;
for(i=0;i<6; i++){
leds[i]=n%2;
n=n/2;
}
return;
}
void accendiled(int n)
{
int i;
number(n);
digitalWrite(....., leds[0]);
digitalWrite(....., leds[1]);
.....
}
void setup()
{
.....
}
void loop()
{
// gestione pulsanti
....
// gestione degli stati
accendiled(status);
}
────══════♦☆♦══════────
Esercizio 6
Implementare il circuito in figura e uno Sketch che induce il seguente comportamento:
ad ogni pressione impulsiva del pulsante il sistema cambia stato in modo ciclico;
gli stati da gestire sono i seguenti:
stato 0: lampada accesa
stato 1: lampada lampeggiante (ogni 2 secondi)
stato 2: lampada spenta
────══════♦☆♦══════────
Esercizio 7
Modificare il circuito dell'esercizio 6 introducendo un led che, opportunamente pilotato tramite uno Sketch, si accenda mentre il pulsante è premuto e si spenga quando il pulsante è rilasciato.
Per il resto, devono essere mantenuti i comportamenti dell'esercizio 6.
────══════♦☆♦══════────
Esercizio 8
Modificare il circuito in figura inserendo un pulsante per controllare il comportamento del display.
All'avvio il display mostra il numero 0.
Ad ogni pressione impulsiva del pulsante il valore numerico mostrato dal display si incrementa di 1, seguendo una logica circolare (dopo il 9 torna a 0).
Suggerimento
Utilizzare la funzione già implementata nel progetto Pilotaggio di un Display a led.
────══════♦☆♦══════────
Esercizio 9
A partire dal circuito in figura implementare uno Sketch che consenta di ottenere il sistema di seguito descritto:
Il sistema gestisce 3 differenti stati
Premendo in modo impulsivo il pulsante di sinistra del circuito, il sistema passa da uno stato al successivo in modo ciclico
Premendo in modo impulsivo il pulsante di destra del circuito, il sistema passa da uno stato al precedente in modo ciclico
Stato 0 (iniziale):
La lampadina è accesa in modo permanente.
Stato 1:
La lampadina lampeggia con i tempi indicati di seguito (intermittenza ciclica):
Acceso (5 decimi sec.) / Spento (3 decimi sec.) / Acceso (2 decimi sec.) / Spento (4 decimi sec.)
Stato 2:
La lampadina è spenta in modo permanente.
Sito: 7ecnologie
Sezione: 17. Robotica e domotica
Capitolo: 98. Esercizi
Paragrafo: 01. Arduino
Indice dei capitoli: 00. Risorse - 01. Elementi di Elettronica - 02. Arduino - 98. Esercizi
Indice dei paragrafi: 01. Arduino