Lezione 1 su Arduino: Divertiamoci con i LED !

Lezione 1 su Arduino: Divertiamoci con i LED !

In questo prima guida su Arduino, si parlerà di come creare piccoli programmi che permettono di accedere e spegnere vari LED. Attraverso questi semplici programmi, sarà possibile prendere dimestichezza con questo fantastico dispositivo, dalle grandi possibilità.

Requisiti per questi programmi sui LED

Un po’ di Elettronica sui LED

light emitting diode o meglio noti con la sigla LED, non sono altre che dei diodi, che attraverso il passaggio di corrente, permettono creare una luce. Essi vengono utilizzati in tantissimi dispositivi, come in macchina per segnalare eventuali anomalia oppure come luci diurne, nei PC. Il grande vantaggio dei LED è che scaldano davvero poco. I normali LED a due piedini, sono composti dall’anodo e dal catodo, come mostrato in figura:

diodo

 

 

I diodi normali, come i Led, sono in grado di far passare corrente da Anodo verso Catodo quando si trovano nella zona di polarizzazione diretta, che avviene quando c’è una differenza di potenziale maggiore di circa 0.6 [V]. Tuttavia, ci sono alcuni diodi, noti con il nome di Zener, sono in grado di far passare corrente da Catodo all’Anodo, quando si trovano ad una differenza di potenziale di circa -4.3 [V] (dipende da dispositivo e tale zona di chiama “breakdown”). Tuttavia, sebbene sono abilitati per passare corrente i LED, bisogna evitare che passi troppa corrente. Per quanto di solito si mettono delle resistenze. Questo è dovuto alla più famosa legge dell’Elettronica: la Legge di Ohm.

$$ V = R cdot i $$

Il valore della corrente che dovrebbe passare nel LED affinché quest’ultimo non si bruci deve essere dell’ordine delle 10 di mA. Tuttavia, sfruttando le librerie presenti in Arduino, non sarà necessario inserire una resistenza in serie, dal momento che la tensione che verrà applicata al diodo sarà calibrata in modo da non bruciarlo.

1° Programma: Accendiamo un LED

In questo primo programma, vedremo come far accedere ad intermittenza un singolo LED, messo sulla breadboard collegata ad Arduino. Per costruire tale circuito, occorre collegare il pin 13 di Arduino, con l’anodo del nostro LED e mettere a massa il catodo.

Arduino-LED-Pin13

 

Il programma da far girare sul micro-controllore è il seguente oppure è possibile trovare il file .ino da caricare nel compilatore:

 


 

/* Programma che fa accedere e spegnere un LED*/
int led = 13; // Viene incato a che PIN è collegato l'anodo del LED

int ritardo= 1000; //Questo valore rappresenta la durata di accessione di ciascun LED
void setup() {

pinMode(led, OUTPUT); // Viene inizializzata il PIN 13, per far uscire una tensione adeguata per il LED

// Serve qualora fosse necessario utilizzare la console
Serial.begin(9600);

}

// La funzione loop permette di continuare ad effettuare le varie operazioni, all'inifinito
void loop() {

digitalWrite(led, HIGH); // Viene accesso LED
delay(ritardo);
digitalWrite(led, LOW); // Viene spento LED
delay(ritardo);

}

 


led_base  Come si può vedere dal main del programma, il ruolo di accedere e spegnere il LED viene fatta dalla funzione digitalWrite.    

2° Programma: Accendiamo più LED

Ora che abbiamo capito come funziona il metodo di accedere un LED, possiamo creare un programma che permetta di accedere più LED. Per quanto riguarda il collegamento dei fili, occorre collegare per ciascun LED, l’anodo con i PIN 13,12 e 11 di Arduino e mettere a massa il catodo. Per far questo conviene mettere un file tra GND e la file dei – della breadboard e da qui far partire i tre cavi che vanno ai catodi. Tale programma è riportato qui sotto:  

/* Programma che fa accedere dopo un determinato periodo i LED*/
int led[3] = {13,12,11}; //Viene dichiarto un vettore, che contiene i Pin dei vari LED
int i; // Questo variabile viene utilizzato come un contantore all'interno dei cicli for
int ritardo= 1000; //Questo valore rappresenta la durata di accessione di ciascun LED

void setup() {                
  // Vengono inzializzate le varie uscite, in modo da abilitare la tensione corretta per far accedere i LED
 for(i =0; i<3; i++) { 
  pinMode(led[i], OUTPUT); 
 }
 // Serve qualora fosse necessario utilizzare la console
  Serial.begin(9600);

}

// La funzione loop permette di continuare ad effettuare le varie operazioni, all'inifinito
void loop() {
  // Questo ciclo for permette di accedere e spegnere i LED in modo corretto
  for(i =0; i<3; i++) { 
  digitalWrite(led[i], HIGH);   // Viene accesso il primo LED
  delay(ritardo);               
  digitalWrite(led[i], LOW);    // Viene spento il primo LED
  digitalWrite(led[i+1], HIGH); // Viene accesso il sueccessivo LED
  delay(ritardo);  
  } 

}

<a href="https://www.dropbox.com/s/69obw8s18xmkgmy/LED_ciclo_for.ino"><img class="alignnone size-full wp-image-1396" alt="Led_ciclo_for" src="http://ismanettoneblog.altervista.org/blog/wp-content/uploads/2013/05/Led_ciclo_for.png" width="124" height="99" /></a>

Come si può vedere, è importante il ruolo svolto dal ciclo "for". Esso permette di ridurre notevolmente il codice da scrivere, sopratutto qualora fosse necessario accedere più di 3 LED.

3° Programma: Semaforo con i LED

Per creare questo programma è necessario disporre di 3 LED: 1 Verde, 1 Giallo e 1 Rosso. In questo modo potremmo creare un piccolo semaforo. Nel mio caso ho utilizzato per il colore verde e rosso i LED da 10mm, mentre per quello arancione, un LED da 5mm. qualora la luminosità di quelli grossi fosse troppo elevata, è possibile inserire una resistenza in serie da 1 k $$ ohm $$. Il codice del programma è riportato qui:

/* Questo programma simula un semaforo, attraverso i 3 LED colorati */
int led_green = 13;
int led_yellow = 12;
int led_red = 11;
int tempo_verde = 5000;
int tempo_giallo = 4000;
int tempo_rosso = 3000;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led_green, OUTPUT); 
  pinMode(led_yellow, OUTPUT);
  pinMode(led_red, OUTPUT);
  Serial.begin(9600);

}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led_green, HIGH);   // turn the LED on (HIGH is the voltage level)
  Serial.print("Il semaforo e' verde n");
  delay(tempo_verde);               // wait for a second
  digitalWrite(led_green, LOW);
  digitalWrite(led_yellow, HIGH);  // turn the LED off by making the voltage LOW
  Serial.print("Il semaforo e' giallo n");
  delay(tempo_giallo);    
  digitalWrite(led_yellow, LOW); 
  digitalWrite(led_red, HIGH);
  Serial.print("Il semaforo e' rosso n");
  delay(tempo_rosso); 
  digitalWrite(led_red, LOW);

}
Per la prima volta, si è fatto uso della funzione Serial.print. Questa funzione non fa altro che stampare sulla console del programma Arduino, una frase, che in questo caso permette di capire in che stato si trova il semaforo.
<a href="https://www.dropbox.com/s/pyh1gn5ulnx2t7b/Semaforo.ino"><img alt="Semaforo" src="http://ismanettoneblog.altervista.org/blog/wp-content/uploads/2013/05/Semaforo.png" width="109" height="95" /></a>

 

 

console

 

 

Blogger

3 pensieri su “Lezione 1 su Arduino: Divertiamoci con i LED !

I commenti sono chiusi.