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

metallo97

Utente Èlite
3,530
1,200
CPU
Intel Core i7 930 @ 4GHz
Scheda Madre
ASUS Rampage II Gene
HDD
Crucial M500 120GB
RAM
OCZ Platinum 9-9-9-28 @ 1866MHz
GPU
MSI Radeon HD7950
Audio
Creative X-Fi
Monitor
HP 22xi
PSU
Nilox SRM850
Case
Project: Black Side of The Modding
OS
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:

15f0fhx.jpg


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:

2u9s9ic.jpg


E la vostra porta seriale:

n4e8zr.jpg


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.

352ixjb.jpg


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
CPU
4770k
Scheda Madre
Gigabyte Z87X-OC
HDD
Samsung 840 Pro 256GB ; WD Caviar Black 3TB
RAM
Crucial Ballistix Tactical Tracer 16GB (8GB System ; 8GB RamDisk)
GPU
Gtx 780 Ghz Ed
Monitor
Asus VG248QE
PSU
Corsair AX860
Case
Chaser MK-I
OS
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
Reazioni: Blume.

liberodaniele

Utente Èlite
1,609
195
CPU
i5 2500 @4,1GHz
Dissipatore
corsair h70
Scheda Madre
msi z68s-g43
HDD
samsung evo 500gb+ssd 60 gb corsair+hdd 300gb
RAM
8 gb corsair veneange low profile
GPU
RX 480 NITRO
Case
CM 690 II
Periferiche
logitech g 502 + logitech 810 brown switch
OS
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 :)
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili