GUIDA 4: Arduino, lampeggiamento a frequenza variabile

Vediamo ora l’esempio della precedente guida, con la differenza che il tempo in cui l LED è acceso e quello in cui è spento variano, grazie a un potenziometro tramite il quale l’utente interagisce con il circuito.

Un potenziometro è una resistenza variabile. Possiede tre piedini:

Potenziometro
Potenziometro

I due laterali vanno collegati al positivo (5v) e alla massa. Quello centrale, invece, devi collegarlo a un pin analogico di Arduino. Questo perché il valore che imposti sul potenziometro è variabile; non corrisponde a 0 o 1 (come nei pin digitali). In questo modo in tale pin la tensione varierà da 0 a 5v. Arduino converte questa tensione in un numero che varia da 0 a 1023 (il numero massimo rappresentabile con 10 bit). Vediamo lo schema elettronico del progetto:

blink con potenziometro

 

Collega il potenziometro come scritto precedentemente; il resto del circuito è uguale a quello visto nel precedente articolo.

Vediamo ora il codice. Come prima cosa definiamo una variabile. Una variabile è un valore che cambia nel tempo, che può essere di vari tipi: intero, booleano, una stringa ecc, a cui viene associato un nome. In alcuni linguaggi di programmazione non è necessario dichiarare di che tipo è una variabile. Ciò, però, non accade su Arduino, quindi, per definire la variabile devi comunicarne ad Arduino il tipo. In questo caso usiamo una variabile intera che chiamiamo “valore_potenziometro” e a cui assegniamo il valore “0” (zero):

int valore_potenziometro=0;

Scrivi ora il setup, all’interno del quale imposti il pin 13 come output e il pin analogico “A0” come input. Questo passaggio non ha bisogno di spiegazioni: il pin A0 “riceve” il dato dal potenziometro; Arduino “butta fuori” il dato sul LED.

void setup(){
pinMode(13,OUTPUT);
pinMode(A1,INPUT);
}

Passiamo ora al loop; qui dici ad Arduino di cambiare il valore della variabile “valore_potenziometro” (che inizialmente era zero) con la “lettura” del potenziometro, quindi il valore compreso tra 0 e 1023.

void loop(){
valore_potenziometro=analogRead(0);

Poi scrivi il codice del programma visto nella precedente guida, sostituendo il tempo di ritardo con il valore della variabile.

digitalWrite(13,HIGH);
delay(valore_potenziometro);
digitalWrite(13,LOW);
delay(valore_potenziometro);
}

In questo modo ottieni che:

  • con il potenziometro impostato al massimo della sua resistenza, la variabile ha il valore 1023 e quindi il tempo di attesa è poco maggiore di un secondo (ricorda che il tenpo viene letto da Arduino in millisecondi)
  • con il potenziometro impostato al minimo della sua resistenza, la variabile ha il valore 0 e quindi il tempo di attesa è nullo. Siccome Arduino deve comunque accendere e spegnere il LED, esso non avrà piena luminosità

Anche questa guida è finita, ti invito a commentare se non è chiaro qualche concetto/termine!

2 Risposte a “GUIDA 4: Arduino, lampeggiamento a frequenza variabile”

    1. In realtà era presente un errore. analogread(1) è stato sostituito con analogread(0) dove lo zero sta per il pin analogico 0 (A0) al quale è collegato il potenziometro.

I commenti sono chiusi.