Arduino Tutorials

Arduino: Accendiamo un LED

By on 20 Febbraio 2016

Arduino: Accendiamo un LED

In questo primo tutorial impareremo ad accendere un LED grazie al Nano 3.0. Sul modulo è già presente un LED collegato al pin digitale 13. Usiamo quello per il nostro primo tutorial.

nanoExplenation

Colleghiamo il Nano 3.0 al PC, apriamo il programma Arduino ed andiamo in File / Esempi / 01.Basics / e selezioniamo Blink.

Verrà caricato seguente sketch:

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

Carichiamo il Codice

Premendo sul pulsate a forma di V sotto File ci farà compilare il codice e ci dirà se sono presenti errori in esso. La freccia verso destra invece ci permette di caricare il codice sul nostro Nano 3.0 Premete prima la V e poi la freccia. In basso dovrebbe comparire “Done compiling” dopo che abbiamo premuto la V e “Done Uploading” una volta premuta la freccia . Accediamo il LED !!!

Analizziamo passo passo il codice

Non abbiate paura l’analisi riga per riga vi porterà alla comprensione del linguaggio di programmazione anche se non siete programmatori.

// Esempio 01: far lampeggiare un led

Cone le due barre “//” indichiamo l’inizio di un commento e il testo che lo segue, in questo caso, identifica il titolo del nostro programma. Molto spesso è importante indicare subito dopo il titolo, la data dell’ultima variazione e il nome dell’autore, in modo che a distanza di tempo possiamo identificare le versioni di sviluppo ed il nome dell’ultimo programmatore che ha eseguito modifiche:

Ad esempio:

// Esempio 02: far lampeggiare un led
// Data ultima modifica: 16.11.2010
// Autore: MeStesso

notate che ogni linea di commento deve essere preceduta da “//”. Se volete evitare di scrivere per ogni linea “//” potete far precedere il testo commento dai caratteri “/*” e farlo concludere con i caratteri “*/”.

Ad esempio:

/* Esempio 03: far lampeggiare un led
Data ultima modifica: 16.11.2010
Autore: Mestesso */
#define LED 13               // LED collegato al pin digitale 13

#define consente di sostituire, in fase di compilazione, all’interno del vostro programma il valore 13 ogni volta che compare la parola LED. Vi ricordo che la compilazione avviene quando fate click su “Verify” oppure quando effettuate l’upload sulla scheda.

Setup

void setup()

void indica ad Arduino che stiamo dichiarando una funzione di nome setup(), cioè un porzione di codice che esegue un’operazione specifica

{

La parentesi graffa aperta indica dove incomincia il codice.

  pinMode(LED, OUTPUT);     // imposta il pin digitale come output

pinMode è un’istruzione che dice ad Arduino come usare un determinato pin. Tra parentesi tonde vengono specificati gli argomenti che possono essere numeri e lettere. I pin digitali possono essere utilizzati sia come INPUT che come OUTPUT. Nel nostro caso poiché vogliamo far lampeggiare il diodo LED dobbiamo definire il pin di OUTPUT. Le parole INPUT e OUTPUT sono costanti definite, che non variano mai nel linguaggio di Arduino.

}

La parentesi graffa chiusa indica la fine della funzione setup().

Loop

void loop()

Indica la sezione di codice principale, il nucleo del vostro programma, che verrà ripetuto all’infinito fino a quando non si spegne la scheda.

  digitalWrite(LED, HIGH);  // accende il LED

L’istruzione digitalWrite possiede due argomenti, il primo definisce il pin, il secondo indica lo stato. digitalWrite è un’istruzione in grado di impostare un pin definito come OUTPUT ad un valore HIGH o ad un valore LOW, in modo più semplice permette di accendere o spegnere un led connesso al pin specificato nel primo argomento, nel nostro caso LED.

Tenete conto che dire che su un determinato pin vi è uno stato HIGHT, vuol dire che su di esso viene applicata una tensione di +5 V, mentre se lo stato e LOW vuol dire che sul pin è applicata una tensione di 0V.

Delay

  delay(1000);              // aspetta un secondo

delay() è un’istruzione molto semplice che non fa altro che interrompere per un determinato tempo l’esecuzione del programma. L’istruzione ha un solo argomento numerico che indica il numero di millisecondi di attesa. Nel nostro caso con “delay(1000)” diciamo che il programma deve bloccarsi per 1000 millisecondi ovvero 1 secondo.

Quindi guardando insieme le due istruzioni:

  digitalWrite(LED, HIGH);  // accende il LED
  delay(1000);              // aspetta un secondo

Diciamo ad Arduino di accendere il diodo led sul pin 13 per 1 secondo.

  digitalWrite(LED, LOW);   // spegne il LED

Ordiniamo al led sul pin 13 di spegnersi

  delay(1000);              // aspetta un secondo

tiene spento il diodo connesso al pin 13 per 1 secondo.

Ora per concludere questa seconda lezione vi invito ad eseguire i seguenti esercizi:

A: Variate il tempo di accensione e spegnimento, con tempi uguali di accensione e spegnimento.

B: Variate il tempo di accensione e spegnimento, con tempi diversi di accensione e spegnimento.

C: Provate ad eseguire il programma con tempi inferiori ai 500 millisecondi, cosa succede?

Altri tutorial su Arduino: QUI QUI

TAGS
RELATED POSTS
2 Comments
  1. Rispondi

    Frank

    22 Agosto 2017

    Ottimo Articolo. Grazie !

  2. Rispondi

    Emanuele

    22 Agosto 2017

    Bellissimo articolo! complimenti

Leave a Reply to Frank / Cancel Reply

IL FALCY
Turin, Italy

Hi my name is Falcy and this is my World! I use this blog theme to tell people my story. Through all the places and things I see around the world, there isn't a best way to share my experience! Follow my daily updates and discover with me the essence of traveling!

Visited Places