Nota: TUTTI i prodotti OSOYOO per Arduino sono schede di terze parti completamente compatibili con Arduino.

Introduzione

In questa lezione imparerete a programmare Arduino per far lampeggiare il LED incorporato in Arduino..

Preparazione

Hardware

Software

Arduino IDE (version 1.6.4+)

Avviso:

Non è necessario molto per questa lezione, assicuratevi di aver seguito prima le lezioni di preparazione e la lezione Hello World!

Assicuratevi di avere un cavo di sincronizzazione di buona qualità, non scegliete un cavo USB “solo carica”.

The ‘L’ LED

La scheda OSOYOO Basic è dotata di file di connettori su entrambi i lati che vengono utilizzati per il collegamento a dispositivi elettronici e a “shield” plug-in che consentono alla scheda OSOYOO Basic di fare di più. Tuttavia, la scheda OSOYOO Basic dispone anche di un singolo LED che potete controllare dai vostri sketch. Questo LED è incorporato nella scheda OSOYOO Basic e viene spesso chiamato LED “L”, perché è così che è etichettato sulla scheda.

La posizione di questo LED è cerchiata in rosso nelle immagini della scheda OSOYOO Basic e di Leonardo riportate di seguito.

Collegare la scheda

Collegare la scheda OSOYOO Basic al computer utilizzando il cavo USB. Il LED verde di alimentazione (PWR) dovrebbe accendersi.

Loading the ‘Blink’ Example

È possibile che il LED ‘L’ della scheda OSOYOO Basic lampeggi già quando la si collega a una presa USB. Questo perché le schede OSOYOO Basic vengono generalmente fornite con lo sketch ‘Blink’ preinstallato.
In questa lezione riprogrammeremo la scheda OSOYOO Basic con il nostro sketch Blink e modificheremo la velocità con cui lampeggia.In Hello World Lesson, avete configurato l’IDE Arduino e vi siete assicurati di trovare la porta seriale giusta per collegarlo alla vostra scheda OSOYOO Basic. È giunto il momento di mettere alla prova questa connessione e di programmare la scheda OSOYOO Basic..

L’IDE Arduino include una vasta collezione di sketch di esempio che è possibile caricare e utilizzare. Questo include uno sketch di esempio per far lampeggiare il LED “L”.

Caricate lo sketch ‘Blink’ che troverete nel sistema di menu dell’IDE alla voce File → Examples → 01.Basics→Blink.

Selezionare il tipo di scheda/tipo di porta corrispondente

È necessario selezionare la voce del menu Tools > Board che corrisponde al vostro Arduino, in questo caso abbiamo scelto “Arduino/Genuino Uno” .

Selezionare il dispositivo seriale della scheda OSOYOO Basic dal menu Strumenti | Porta seriale. Probabilmente si tratta di COM3 o superiore (COM1 e COM2 sono solitamente riservate alle porte seriali hardware). Per scoprirlo, potete scollegare la scheda OSOYOO Basic e riaprire il menu; la voce che scompare dovrebbe essere la scheda OSOYOO Basic. Ricollegate la scheda e selezionate la porta seriale: noi abbiamo scelto “COM**(Arduino/Genuino Uno)”.

Caricamento di Blink sulla scheda

Fare clic sul pulsante ‘Upload’ . Il secondo pulsante da sinistra nella barra degli strumenti.

Se si osserva l’area di stato dell’IDE, si vedrà una barra di avanzamento e una serie di messaggi. All’inizio apparirà la scritta ‘Compilazione dello schizzo…’. Questo converte lo schizzo in un formato adatto al caricamento sulla scheda.

Successivamente, lo stato cambierà in “‘Uploading”. A questo punto, i LED della scheda OSOYOO Basic dovrebbero iniziare a lampeggiare durante il trasferimento dello sketch.

Infine, lo stato cambierà in .

Come funziona “Blink”

/*  Blink  Turns on an LED on for one second, then off for one second, repeatedly.  
Most board for Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO   
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to  
the correct LED pin independent of which board is used.   This example code is 
in the public domain. */ 
// the setup function runs once when you press reset or power the board 
void setup() { 
// initialize digital pin LED_BUILTIN as an output. 
pinMode(LED_BUILTIN, OUTPUT); 
} 
// the loop function runs over and over again forever 
void loop() { 
digitalWrite(LED_BUILTIN, HIGH); 
// turn the LED on (HIGH is the voltage level) 
delay(1000); 
// wait for a second 
digitalWrite(LED_BUILTIN, LOW); 
// turn the LED off by making the voltage LOW 
delay(1000); 
// wait for a second 
} 

La prima cosa da notare è che gran parte di questo schizzo è costituito dai cosiddetti “commenti”. I commenti non sono vere e proprie istruzioni per il programma, ma solo commenti su come funziona il programma. Sono presenti a beneficio dell’utente, in modo da accompagnare lo schizzo con qualche spiegazione.

Tutto ciò che è compreso tra /* e */ all’inizio dello schizzo è un commento di blocco, che spiega a cosa serve lo schizzo.

Ci sono anche commenti su una sola riga che iniziano con // e tutto ciò che arriva fino alla fine della riga viene considerato un commento.

La prima riga di codice effettiva è:

void setup() { 
// initialize digital pin LED_BUILTIN as an output. 
pinMode(LED_BUILTIN, OUTPUT); }

Ogni schizzo deve avere una funzione di “impostazione” e la parte in cui si potrebbero aggiungere istruzioni proprie è quella compresa tra i caratteri { e }..

In questo caso, c’è solo un comando che, come si legge nel commento, indica alla scheda OSOYOO Basic che utilizzeremo il pin del LED come uscita.

È inoltre obbligatorio che uno schizzo abbia una funzione ‘loop’. A differenza della funzione ‘setup’ che viene eseguita solo una volta, dopo un reset, la funzione ‘loop’, dopo aver terminato l’esecuzione dei comandi, ricomincia immediatamente.

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

All’interno della funzione loop, i comandi innanzitutto accendono il pin del LED (HIGH), poi ‘ritardano’ per 1000 millisecondi (1 secondo), quindi spengono il pin del LED e fanno una pausa di un altro secondo.

Lampeggiamento più veloce

Come avrete intuito, la chiave di volta sta nel cambiare il parametro in () per il comando ‘delay’.

Il periodo di ritardo è espresso in millisecondi, quindi se si vuole che il LED lampeggi due volte più velocemente, si deve cambiare il valore da 1000 a 500. In questo modo la pausa sarà di mezzo secondo a ogni ritardo, anziché di un secondo intero. Caricate di nuovo lo sketch e vedrete il LED iniziare a lampeggiare più rapidamente.