ARDUINO 101 - Tutorial n°2: Alla scoperta di Arduino IDE e prime basi sulla programmazione Wiring

metallo97

Utente Èlite
3,530
1,200
Hardware Utente
CPU
Intel Core i7 930 @ 4GHz
Scheda Madre
ASUS Rampage II Gene
Hard Disk
Crucial M500 120GB
RAM
OCZ Platinum 9-9-9-28 @ 1866MHz
Scheda Video
MSI Radeon HD7950
Scheda Audio
Creative X-Fi
Monitor
HP 22xi
Alimentatore
Nilox SRM850
Case
Project: Black Side of The Modding
Sistema Operativo
Windows 7 64 Bit
Ciao ragazzi, bentrovati nella seconda puntata di:
ARDUINO 101


Vediamo di cominciare ad inoltrarci in questa fitta boscaglia oscura, direi una selva Dantesca (doh sto giusto studiando letteratura :asd: ) qual'è la programmazione in Arduino. Come molti di voi, spero, noteranno, il linguaggio Wiring è molto, molto simile al C. Quindi sarete anche facilitati magari a programmare.

Per programmare ci vuole un interprete. L'interprete a nostra disposizione si chiama Arduino IDE, scaricabile gratuitamente da questo link: Arduino - Software
Scaricate la versione che vi interessa e avviatela. Come prerequisito dovete avere Java installato nel vostro PC.

Quando attaccate al PC per la prima volta la vostra scheda Arduino, è molto probabile che non riesca a trovare i driver. Niente paura, vi basta dare alla schermata di installazione dispositivi la cartella drivers presente nella directory di installazione di Arduino IDE. Oppure dentro la cartella drivers di Arduino IDE sono presenti due file eseguibili, chiamati rispettivamente dpinst-x86 e dpinst-amd64, scegliete quello adatto alla vostra architettura e seguite i passaggi, vi ritroverete con il vostro Arduino installato e pronto ad essere programmato.

Aperto il programma vi ritroverete con questa schermata molto semplice, vediamo di spiegarla:



L'interfaccia è molto semplice, in alto troviamo la barra degli strumenti, più sotto una seconda barra con dei collegamenti, quelli che useremo maggiormente durante la programmazione. Troviamo poi lo spazio dove scrivere il codice, quello bianco, e poco più sotto uno spazio nero, che ci da diverse informazioni quando noi andiamo a compilare il codice e ad inviarlo ad Arduino.

Penso che non ci sia molto da spiegare, in quanto l'IDE è completamente in Italiano ed eventualmente è fornita anche una guida in rete.

Fate in modo di selezionare solo la vostra scheda Arduino in questo menu:



E la vostra porta seriale:



Ora siete pronti per programmare :D

Volendo in File > Esempi trovate diversi esempi di codice Arduino, in generale sono molto semplici ma possono arrivare ad essere molto complicati, per via dell'uso di librerie esterne e/o di shield di terze parti, da acquistare separatamente.



Direi che ora possiamo finalmente fare il nostro primo programma e quindi a muovere i primi passi in questa selva che è Arduino. Naturalmente scrivendo il codice vi spiego anche cosa serve scrivere quello che vi dico.

Le istruzioni base che faranno parte di ogni nostro singolo sketch saranno:
Codice:
void setup();
void loop();
pinMode();
digitalWrite();
int
Successivamente potremmo anche usare:
Codice:
analogRead();
digitalRead();
delay();
analogWrite();
e diverse altre...
Andiamo quindi a far lampeggiare il nostro led integrato nel pin 13, nell'Arduino UNO è integrato un led nel pin 13, in qualunque altra scheda è necessario collegare un led con il polo positivo ad uno delle uscite digitali e il polo negativo a una uscita GND.

Il codice è molto semplice:

Codice:
void setup(){
 pinMode(13, OUTPUT);
}
void loop(){
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Andiamo ad analizzare il codice:

Codice:
void setup()
Qui mettiamo tutte le istruzioni che facciamo eseguire ad Arduino appena viene acceso o resettato. Qui abbiamo detto che il pin 13 funzionerà in modalità OUTPUT [pinMode(13, OUTPUT)].

Ricordate sempre maiuscole, virgole e punti e virgola...

C'è poi
Codice:
void loop()
Qui dentro mettiamo tutte le cose che vogliamo far eseguire sistematicamente e all'infinito ad Arduino. Abbiamo messo digitalWrite (scrittura digitale) sul pin 13 e HIGH, ovvero alto/1, visto che queste uscite non sono PWM possiamo solo dire 0 o 1. 0 sta per LOW e 1 sta per HIGH, spento/acceso.
Tra le istruzioni ho messo il codice delay(ms), ovvero aspetta tot millisecondi prima di passare all'istruzione successiva, 1000 millisecondi sono un 1 secondo, quindi il LED si accenderà per 1 secondo e poi si spegnerà per 1 secondo, all'infinito.

Saliamo di un gradino e facciamo aumentare lentamente la luminosità di un LED.
Colleghiamo il led ad una porta PWM, nel mio caso la porta 11, e il polo negativo ad una porta GND. Mi è venuto molto utile l'uso di una breadboard per evitare di piegare troppo le gambe del LED.

Il codice diventa un attimo più complicato:
Codice:
void setup(){
 pinMode(11, OUTPUT);
}
void loop(){
for (int i=0; i<=255; i++){
  analogWrite(11,i);
  delay(10);
}
}
Vediamo che c'è l'aggiunta di un ciclo for. Ovvero seguiamo la parentesi, il primo termine è int i=0, dichiariamo la variabile "i" con valore uguale a zero, successivamente imponiamo che il numero massimo sia minore-uguale a 255 che è il valore massimo che le porte PWM possono decodificare, successivamente abbiamo scritto "i++" ovvero prendi "i" e somma.
Sotto ho scritto analogWrite perchè essendo PWM sto scrivendo segnali analogici da 0 a 255, non 0 o 1 delle precedenti porte digitali, nonostante il nostro led sia collegato ad una porta digitale. Quindi qui ho assegnato il numero 11 e ho detto di incrementare di "i". Di conseguenza il nostro led partirà da 0 ovvero da spento e arriverà a 255 acceso completamente.

Per questa volta mi fermo qui, spero sia stato abbastanza esaustivo, se avete domande non esitate a chiedere. ;)
 

CANE5000

Nuovo Utente
53
1
Hardware Utente
CPU
4770k
Scheda Madre
Gigabyte Z87X-OC
Hard Disk
Samsung 840 Pro 256GB ; WD Caviar Black 3TB
RAM
Crucial Ballistix Tactical Tracer 16GB (8GB System ; 8GB RamDisk)
Scheda Video
Gtx 780 Ghz Ed
Monitor
Asus VG248QE
Alimentatore
Corsair AX860
Case
Chaser MK-I
Sistema Operativo
Win 7 64 Ultimate
acquisterò a breve un arduino uno per mettere striscie di led all'interno del mio pc e smanettarci su :)
 
  • Mi piace
Reactions: Blume.

liberodaniele

Utente Èlite
1,609
195
Hardware Utente
CPU
i5 2500 @4,1GHz
Dissipatore
corsair h70
Scheda Madre
msi z68s-g43
Hard Disk
samsung evo 500gb+ssd 60 gb corsair+hdd 300gb
RAM
8 gb corsair veneange low profile
Scheda Video
RX 480 NITRO
Case
CM 690 II
Periferiche
logitech g 502 + logitech 810 brown switch
Sistema Operativo
Windows 10
Segnalo che su w8 ci potrebbero essere problemi a installare i driver. L'ultima volta che l'ho fatto i driver mancavano di firma digitale e ho dovuto riavviare windows in modalità ripristino per poi riavviarlo permettendo l'installazione di driver mancanti di certificato :)
 

Entra

oppure Accedi utilizzando