Che cos'è Arduino? ARDUINO UNO



Documenti analoghi
Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Invio SMS. DM Board ICS Invio SMS

Indruduzione... 1 Il modulo Bluetooth HC Il firmware... 3 Collegamento della scheda... 4 Software PC e l applicazione Android...

Arduino: Programmazione

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

File, Modifica, Visualizza, Strumenti, Messaggio

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Logica binaria. Porte logiche.

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

CTVClient. Dopo aver inserito correttamente i dati, verrà visualizzata la schermata del tabellone con i giorni e le ore.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Guida Rapida all Installazione WLN10 e WLN10HS Server Wireless NMEA

16/01/2009 AGGIORNAMENTO SOFTWARE LS7 AGGIORNAMENTO SOFTWARE LS7

30 giorni di prova gratuiti, entra nel sito scarica e installa subito mypckey

Visual basic base Lezione 01. L'ambiente di sviluppo

AGGIORNAMENTO SOFTWARE LS7 VERSIONE 5.13

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

Innanzitutto andiamo sul sito ed eseguiamo il download del programma cliccando su Download Dropbox.

Autoware Ladder Tool (per Arduino ) Basic Tutorial

Guida informatica per l associazione #IDEA

Manuale di programmazione BerMar_Drive_Software

POLITICHE Istruzioni per l invio telematico dei dati delle votazioni

Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta

MANUALE OCCHIALI SPY 720P

Modulo T Manuale della procedura di Ripristino

Arduino UNO. Single board microcontroller

Corso base di informatica

Il Computer 1. A cosa serve un Computer? Scrivere, Calcolare, Disegnare, Giocare, Ricercare informazioni, Comprare

Codifica: dal diagramma a blocchi al linguaggio C++

Proteggiamo il PC con il Firewall di Windows Vista

4 3 4 = 4 x x x 10 0 aaa

IL MIO PRIMO SITO: NEWS

Guida rapida Vodafone Internet Box

INDICE. IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO...

Il pacchetto contiene sia l ambiente di sviluppo sia i driver per la scheda.

Progetto Esami Di Stato Anno 2014/2015

Creazione Account PEC puntozeri su Outlook Express

Procedura di aggiornamento del firmware Display Remoto IntellyGreenPV

LCMobile Restaurant. Guida su come usare il software per palmare LCMobile Restaurant.

INVIO SMS

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Attivazione della connessione PPTP ADSL

FIRMWARE dicembre 2012 (V2d)

DESKTOP. Uso del sistema operativo Windows XP e gestione dei file. Vediamo in dettaglio queste parti.

Arduino: domotica open source

CONTROLLO INSTALLAZIONE

EM Camera Web con microfono

Dispositivo Firma Digitale

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

HOMEPLUG ADAPTER EXPANSION

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA

IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

9^ parte : Come pilotare motori dc utilizzando il motor shield. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

KEYSTONE. OM8 - EPI 2 Modulo interfaccia AS-i Manuale di istruzione. Indice 1 Modulo Opzionale OM8: Interfaccia AS-i 1

theremino System LEZIONE 1 Il Master descrizione LEZIONE 2 HAL descrizione Esercizio: accendere 1 o più LED Esercizio: azionare un servomotore

8^ parte : Pilotare Motori passo-passo bipolari usando l integrato L298N. Author: Ing. Sebastiano Giannitto (ITIS M.

Corso Base Arduino ed Elettronica

MANUALE EDICOLA 04.05

Il calendario di Windows Vista

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

Guida all uso di Java Diagrammi ER

Carta Raffaello. Manuale Utente

USB 2,0 SERVER DI STAMPA ETHERNET

Accedendo a questo menu, è possibile effettuare l aggiornamento dei programmi contenuti nella memory card in due diversi modi: CONNESSIONE PC:

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

SOMMARIO... 3 INTRODUZIONE...

Creare un sito Multilingua con Joomla 1.6

Come realizzare i disegni in Autocad partendo da un immagine

Tutorial 3DRoom. 3DRoom

SECURCOMB PSTN. Combinatore telefonico via filo

Mac Application Manager 1.3 (SOLO PER TIGER)

PRODUZIONE PAGELLE IN FORMATO PDF

12 - timer da cucina display a 4 cifre

Installazione di Zelio Soft 2 su Microsoft Windows Vista

bolt PC-Suite (Guida all installazione)

file:///c:/formazione/photoshop-webmaster-uffici/doc/guida-winzip.htm Guida a Winzip

COME COLLEGARSI DA REMOTO AD UN PLC S7-300/400 via MPI Indice

Come masterizzare dischi con Nero 11

Virtualizzazione VirtualBox su Host Windows

XTOTEM offline sul proprio PC

Dispensa di Informatica I.1

Vista d'insieme del sistema. Comando del riscaldamento via radio Introduzione e vista d'insieme

Tecnologia wireless facile da installare TASTIERA MANUALE D'USO.

Introduzione. Macro macro istruzione. Sequenza di comandi memorizzati programma

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE

(fonte: +elettronica+pa+-+regole+generali/ )

UTILIZZO REGISTRO ELETTRONICO

MERIDESTER SOFTWARE DI COMUNICAZIONE PER PC

MOD SMS_ pag. 1

In anticipo sul futuro. Tutorial d installazione per testo Saveris

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

come fare nas Configurare un NAS per accedere ai propri file ovunque

1. opzione 1, ubuntu accanto a windows

Gui Gu d i a d ra r p a i p d i a V d o a d f a one Int fone In e t r e net rnet Box Key Mini

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Procedura di installazione di Xubuntu 8.10 su un PC

Olga Scotti. Basi di Informatica. File e cartelle

Printer Driver. Questa guida descrive l installazione dei driver stampante per Windows Vista e Windows XP.

Transcript:

Che cos'è Arduino? Arduino è una piattaforma open-source utilizzata per la costruzione di progetti di elettronica e automazione. Arduino consiste in una scheda fisica programmabile con micro-controllore e di una parte software, o IDE (Integrated Development Environment), che eseguito sul computer, viene usato per scrivere e caricare codice informatico in linguaggio C nella scheda fisica. La piattaforma Arduino è diventata molto popolare per chi inizia ad apprendere le basi dell'elettronica. Ogni volta che si scrive un nuovo codice, questo può essere caricato sulla scheda fisica semplicemente utilizzando un cavo USB. Arduino ha una forma standard che permette a case produttrici di componenti elettronici di fornire delle espansioni di qualsiasi tipo in modo da aumentare le possibilità di gestione di INPUT e OUTPUT. ARDUINO UNO

ARDUINO IDE Con queste poche righe di codice è possibile far lampeggiare un LED connesso ad Arduino. All'inizio questo linguaggio può risultare complesso o di poca logica ma basta poco tempo per capire come funziona la programmazione e realizzare progetti complessi con semplici combinazioni di istruzioni. Tutto sta nel GIOCARE con questi strumenti. Arduino è stato progettato per artisti, designer, hobbisti, hacker, neofiti e chiunque sia interessato a creare oggetti o ambienti interattivi. Può interagire con pulsanti, LED,

motori, altoparlanti, unità GPS, fotocamere, internet, e anche il vostro smartphone o il vostro televisore. Questa flessibilità combinata ad un software gratuito ha portato ad una vasta comunità di utenti che hanno contribuito a sviluppare codice open-source per creare progetti di qualsiasi tipo. Da un robot o una piastra elettrica per riscaldare le mani a un guanto Dungeons and Dragons, Arduino può essere usato come il cervello dietro quasi tutti i progetti di elettronica. GUANTO DADI DUNGEONS AND DRAGONS E questa è solo la punta dell'iceberg. In internet sono nate comunità e siti interamente dedicati a progetti Arduino. Basta fare una piccola ricerca per avere una lista quasi infinita di guide, tutorial e video su come usare Arduino. Alcuni di questi sono Instructables, Bildr, Arduino Playground, EMC Elettronica.

Ci sono molte varietà di schede Arduino che possono essere utilizzate per scopi diversi. Alcune possono essere differenti da quella sottostante, ma la maggior parte delle schede Arduino hanno questi componenti in comune: Alimentazione (USB / Barrel Jack) Ogni scheda Arduino ha bisogno di essere collegata ad una fonte di alimentazione. Arduino UNO può essere alimentato da un cavo USB (1) proveniente dal computer o una presa a muro (da 6 a 12 Volt massimo) che termina con un jack Barrel (2).

Il collegamento USB è anche il modo con cui caricare il codice nella scheda Arduino. Pins (5V, 3.3V, GND, analogico, digitale, PWM, AREF) I pin sulla scheda sono i connettori in cui inserire i fili per costruire un circuito. Di solito sono di plastica e consentono di collegare un solo cavo alla volta. Arduino ha diversi tipi di pin, ciascuno dei quali è segnato sul bordo interno e utilizzati per funzioni diverse. G N D ( 3 ) : Abbreviazione di 'GROUND', 'TERRA', 'NEGATIVO', o anche 'MASSA'. Ci sono diversi perni GND su Arduino, ognuno dei quali può essere utilizzato per mettere a terra il circuito. (4) 5V e 3.3V (5): Come si può immaginare, questi pin forniscono 5 volt e 3,3 volt. La maggior parte dei componenti semplici utilizzati con Arduino utilizzano 3.3 volt o 5 volt massimo. Analogico (6): L'area dei pins sotto l'etichetta 'Analog In' (da A0 ad A5) sono ingressi Analogici. Questi pin possono leggere il segnale da un sensore analogico (come un sensore di temperatura ) e convertirlo in un valore digitale che possiamo leggere ed usare nel programma. Digitale (7): Nella parte opposta ai pin Analogici, ci sono i pin Digitali (da 0 a 13). Questi pin possono essere utilizzati sia per l'ingresso digitale (per verificare se un pulsante è stato premuto ad esempio) e un'uscita digitale (come l'alimentazione di un LED). PWM (8): La tilde (~) accanto ad alcuni pin digitali (3, 5, 6, 9, 10, e 11) indica la possibilità di usare tali uscite come segnali Pulse-Width Modulation (PWM). AREF (9): acronimo di riferimento Analogico. La maggior parte delle volte questo pin non è necessario. A volte è utilizzato per impostare una tensione di riferimento esterna (tra 0 e 5 Volt) come il limite superiore per i pin di ingresso analogico.

Pulsante di ripristino La scheda Arduino ha un pulsante di reset (10). Premendolo si collegherà temporaneamente il pin di reset a massa e quindi sarà possibile riavviare l'esecuzione di qualsiasi codice caricato in Arduino. Questo può essere molto utile se il codice non viene ripetuto o per operazioni di DEBUG. Indicatore LED di alimentazione Appena sotto a destra della parola "UNO" sul circuito, c'è un LED accanto alla parola 'ON' (11) molto piccola. Questo LED dovrebbe accendersi ogni volta che si collega Arduino ad una fonte di alimentazione. Se questa luce non si accende, c'è una buona probabilità che qualcosa non va. LED RX TX TX è l'abbreviazione di trasmissione, RX è l'abbreviazione di ricezione. Questi segni appaiono un po ovunque in e le ttr onic a p e r ind ic ar e i p i n r e s p ons ab i l i d e l l a comunicazione seriale. Nel nostro caso, ci sono due posti su Arduino UNO dove troviamo la scritta TX e RX, sui pin Digitali 0 e 1 e accanto ai LED di segnalazione TX e RX (12). Questi LED si attivano ogni volta che Arduino sta ricevendo o trasmettendo dati (come quando stiamo caricando un nuovo programma sulla scheda tramite il software Arduino IDE). CI principale La cosa nera con tutte le gambe in metallo è un IC, ovvero un Circuito Integrato (13). Pensate a questo come il cervello vero e proprio di Arduino. Ultimamente è stato sostituito da un circuito SMD molto più piccolo di dimensioni. Il principale IC sulle schede Arduino è della linea Atmega, parte della società ATMEL. E' necessario sapere il tipo di IC che state utilizzando poiché nel momento della programmazione dovrete scegliere il tipo di processore in uso (Board) prima di inviare il codice che

avete scritto alla scheda Arduino. Regolatore di tensione Il regolatore di tensione (14), in realtà non è qualcosa che interagisce con Arduino, ma è utile sapere che fa esattamente quello che dice, ovvero che controlla e regola la quantità di tensione che viene immessa nella scheda Arduino e quindi trasforma la tensione in ingresso da 6-12 volt a 5 volt. La famiglia Arduino Ci sono diverse schede Arduino, ciascuna con differenti capacità. Avere un hardware open-source significa che è possibile modificare e/o produrre espansioni per schede Arduino che forniscono più funzionalità rispetto alle comuni. Ne elenco qualcuna come esempio.

Arduino Uno (R3) L'Uno è un'ottima scelta per il principiante. Ha tutto il necessario per iniziare. Dispone di 14 pin digitali di input / output (di cui 6 possono essere utilizzati come uscite PWM), 6 ingressi analogici, una connessione USB, un jack di alimentazione, un pulsante di reset e contiene tutto il necessario per supportare il proprio micro-controllore. Basta collegarla ad un computer con un cavo USB o alimentarla con un adattatore o una batteria per iniziare.

LilyPad Arduino LilyPad è una scheda Arduino sviluppata su una tecnologia e-textiles ovvero indossabile (creata da Leah Buechley). Ogni LilyPad è stato progettato con larghi connettori su una base piatta e piccola per consentire all'utente finale di poter cucire la scheda su abiti con filo conduttivo. LilyPad ha anche una propria famiglia di schede di ingresso, di uscita, di tensione, e dei sensori che sono stati costruiti appositamente per e-textiles. Questi componenti sono anche lavabili!

Redboard Redboard può essere programmata tramite un cavo USB mini-b. E' possibile lavorare su Windows 8 senza dover modificare le impostazioni di sicurezza. E' più stabile grazie alla porta USB/FTDI, in più è completamente piatta sul retro, rendendola più facile da incorporare nei vari progetti. Basta collegare la scheda, selezionare "Arduino UNO" dal menu di Schede di Arduino IDE per poter caricare il codice. È possibile alimentare la scheda Redboard via USB o tramite la presa a jack Barrel. Il regolatore di potenza è in grado di gestire tensioni da 7 a 15VDC.

Arduino Mega (R3) Arduino Mega è il fratello maggiore di Arduino UNO. Ha un sacco (54!) di Input/Output digitali (14 possono essere utilizzati come uscite PWM), 16 ingressi analogici, una connessione USB, un jack di alimentazione, e un pulsante di reset. Il gran numero di pin rendono questa scheda molto utile per progetti che richiedono molti ingressi digitali e/o uscite.

Arduino Leonardo Arduino Leonardo è la prima scheda di programmazione di Arduino ad utilizzare un micro-controllore con USB incorporato. Ciò significa che può essere più economico e più veloce. Inoltre, poiché la scheda gestisce direttamente l'usb, sono disponibili diverse librerie di codice che consentono di emulare una tastiera del computer, mouse, e altre periferiche.

La famiglia allargata La sola scheda Arduino è molto carina di per se ma per poter creare dei progetti di un certo livello o utilità c'è bisogno d'altro. Ed è qui che entrano in campo I SENSORI di base e gli SHIELDS (scudi o meglio estensioni), due degli strumenti più pratici da utilizzare per dar vita a veri e propri progetti. Sensori Con qualche semplice codice, Arduino può controllare e interagire con una vasta gamma di sensori, componenti che possono misurare la luce, la temperatura, il grado di flessione, la pressione, la vicinanza, l'accelerazione, il monossido di carbonio, la radioattività, l'umidità, la pressione atmosferica, e molti altri.

Shields Inoltre, ci sono queste schede chiamate shield. Sono schede pre-costruite che si adattano sopra alla scheda Arduino e forniscono ulteriori funzionalità. Ad esempio ci sono shield per il controllo di motori, di connessione a internet (ethernet), che forniscono comunicazioni cellulari o wireless, che controllano uno schermo LCD, un touch screen, e molto altro.

Installazione Software e 'Hello World' Per iniziare praticamente ad usare Arduino dobbiamo scaricare il software dal sito http://arduino.cc/en/main/software a seconda del sistema operativo che vogliamo usare. In questa guida selezionerò il pacchetto per windows poiché è il sistema operativo più usato. Una volta scaricato l'installer.exe eseguiamolo e confermiamo il termine l'installazione. Fatto ciò troveremo sul desktop o nel menu Avvio il collegamento al programma Arduino. Facciamolo partire cliccandoci sopra.

Questa è la schermata principale di Arduino. Come potete vedere non è altro che un editor di testo, un blocco note dove poter scrivere il codice che poi sarà convertito in eseguibile per il processore IC della scheda Arduino. In ogni programma destinato ad essere compilato ci sono obbligatoriamente dei TAG da inserire. Questi TAG definiscono delle variabili e delle configurazioni che serviranno per eseguire il programma stesso. Il primo TAG che troviamo è la funzione setup. In linguaggio C ogni funzione deve avere il tipo di dato ritornato e degli argomenti. In questo caso la funzione setup non ritorna nessun dato ne ha argomenti necessari, perciò sarà definita nel modo seguente: void setup() { } il tipo void specifica al compilatore che la funzione setup non ritorna nessun valore o dato. Le parentesi tonde () senza nessun valore all'interno, specificano al compilatore che la funzione setup non ha argomenti. Le parentesi graffe {} delimitano l'inizio e la fine del codice che permette la configurazione base del programma. In questo spazio infatti dovremo inizializzare e quindi informare il compilatore che useremo alcuni tipi di PIN della scheda Arduino come entrate, altri PIN come uscite, che vogliamo utilizzare il monitor Seriale e a che velocità impostare la comunicazione, e/o altre cose necessarie al corretto funzionamento del programma che seguirà. Da notare che le operazioni e istruzioni eseguite all'interno della funzione setup (all'interno delle parentesi graffe) saranno eseguite una volta sola all'accensione della scheda Arduino. Il secondo ed ultimo TAG obbligatorio è la funzione loop. Anche in questo caso dovremo informare il compilatore che non ci serve ne un ritorno di dato o valore, ne argomenti.

void loop() { } In questa funzione, all'interno delle parentesi graffe {}, inseriremo le operazioni e le istruzioni che la scheda Arduino eseguirà in ciclo (loop) finche non staccheremo l'alimentazione. Tutto ciò che compare all'interno di questa funzione ha un ciclo di vita infinito, a meno che diversamente voluto, (ad esempio un input da tastiera o da seriale). Detto questo il nostro IDE Arduino risulterà in questo modo:

In questo esempio faremo accendere e spegnere un led d i r e t t a m e n t e c o n n e s s o a l l a s c h e d a A r d u i n o. L a configurazione Hardware da usare è la seguente. In questa immagine vediamo una scheda Arduino (in questo caso un Arduino Duemilanove ma va bene qualsiasi altra scheda) e un led rosso a 5v. I led hanno un polo positivo (anodo) e uno negativo (catodo). Per identificare il catodo si fa riferimento dalla gamba più corta, viceversa l'anodo è identificato con la gamba più lunga.

Poiché vogliamo accendere e spegnere questo led tramite Arduino connetteremo il catodo su un pin GND quindi Massa o Negativo, mentre l'anodo del led al pin 13 come da immagine (ma posso connetterlo anche ai pin numerati diversamente 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12). Fatto questo dobbiamo dire al compilatore di usare il pin 13 come OUTPUT perché vogliamo far uscire tramite questo pin la tensione a 5v in modo da accendere il led. L'istruzione per impostare un pin in modalità di uscita ( O U T P U T ) è pinmode(). In questo caso la funzione pinmode() dovrà obbligatoriamente avere un argomento (tra parentesi tonde) dove inserire il numero del pin che si vuole impostare e un secondo argomento che identifica il tipo di funzione del pin (INPUT o OUTPUT). In questo caso quindi l'istruzione finale sarà: pinmode(13, OUTPUT); Ogni istruzione è terminata con il punto e virgola ; e poiché è un'istruzione di inizializzazione, va inserita nella funzione setup(). void setup() { pinmode(13, OUTPUT); } Adesso la scheda Arduino saprà che vogliamo usare il pin 13 come OUTPUT quindi possiamo andare nella funzione loop ed inserire l'istruzione per accendere fisicamente il led. L'istruzione per alimentare un pin a 5v è digitalwrite(). Come primo argomento necessita di sapere su quale pin andare ad impostare la tensione di 5v e come secondo argomento, di sapere se far passare tale tensione (HIGH o anche 1) o interromperla (LOW o anche 0).

L'istruzione nel nostro caso sarà: digitalwrite(13, HIGH); Che inclusa nella funzione loop() diventerà: void loop() { digitalwrite(13, HIGH); } Semplice no?! Una volta finito di scrivere il codice, connettiamo Arduino al computer tramite cavo USB, se non è stato riconosciuto dal sistema operativo, selezioniamo il driver contenuto nella cartella di installazione di Arduino (quasi sempre c:\programmi\arduino\driver). Dopodiché selezioniamo la scheda Arduino che stiamo usando andando nel sottomenu Board del menu Tools :

Selezioniamo la porta alla quale è connessa la scheda Arduino andando nel sotto-menu Serial Port del menu Tools : Ed infine inviamo il programma ad Arduino tramite il menu File e cliccando su Upload. In pochi secondi, se non abbiamo commesso errori nella scrittura del codice, il led sulla scheda si accenderà, confermandoci che il codice che abbiamo scritto è stato eseguito. Ma non abbiamo finito, per poter far lampeggiare un led dobbiamo anche poterlo spegnere una volta acceso, quindi dovremo usare la stessa istruzione precedente per accendere il led al pin 13 ma inviando come secondo argomento il valore LOW o 0 (zero). Quindi avremo queste istruzioni eseguite in ciclo infinito: void loop() { digitalwrite(13, HIGH); digitalwrite(13, LOW); } Una volta fatto, invieremo di nuovo il codice nella scheda (UPLOAD). Ma qualcosa non va, il led non si spegne, rimane sempre acceso. Questo perché stiamo ragionando senza tener presente la velocità del processore della scheda Arduino. Il processore esegue le istruzioni

contenute nella funzione loop(), circa 490 volte al secondo. La vista umana non riesce a vedere così velocemente questo comportamento, quindi dovremo rallentare l'esecuzione del ciclo. Per farlo useremo un'istruzione di attesa, che dice al processore di ASPETTARE un tempo che indicherò nell'argomento di tale funzione ovvero la funzione delay(). Questa funzione accetta necessariamente come argomento unico un valore in millisecondi, perciò quando il processore eseguirà il codice e troverà questa funzione, aspetterà il tempo indicato senza eseguire nessuna operazione, e al termine continuerà l'esecuzione del resto del programma. Quindi nel nostro caso: void loop() { digitalwrite(13, HIGH); delay(2000); digitalwrite(13, LOW); } Mettendo 2000 come argomento della funzione delay il processore aspetterà 2000 millisecondi, quindi 2 secondi, senza eseguire il codice, dando il tempo alla vista di percepire il comportamento del led secondo il codice che abbiamo scritto. Provando ad inviare (UPLOAD) di nuovo il codice ad Arduino ci accorgiamo però che il led rimane sempre acceso. Infatti la funzione di attesa è stata messa effettivamente dopo l'accensione del led ma non dopo lo spegnimento. Quindi il processore è così veloce a spegnere e riaccendere il led che non riusciamo ancora a percepirlo. Perciò dobbiamo necessariamente inserire un secondo delay dopo lo spegnimento del led:

void loop() { digitalwrite(13, HIGH); delay(2000); digitalwrite(13, LOW); delay(2000); } Ora, una volta inviato il codice alla scheda, potremo constatare che effettivamente il processore accenderà il led tramite il pin 13, aspetterà 2 secondi senza eseguire operazioni, dandomi così l'opportunità di vedere il led acceso, alla fine dei quali spegnerà il led togliendo la tensione al pin 13 ed aspetterà anche qui 2 secondi senza eseguire operazioni dandomi l'opportunità di vedere il led spento. Poiché è un ciclo infinito, il led si accenderà e spegnerà continuamente.

Utilizzando questo linguaggio e contemporaneamente le uscite e le entrate della scheda Arduino sarà possibile stabilizzare un mezzo multi-rotore in volo, prendendo come INPUT sia i sensori IMU, che il comando del pilota tramite radio e quindi segnale PWM, inviando quindi come OUTPUT, dei segnali PWM ai regolatori di velocità (ESC) che gestiranno la velocità di rotazione dei motori consentendo al mezzo di rimanere in volo e di eseguire i movimenti comandati dal pilota.