Arduino: le basi.

Arduino
Arduino

Impariamo a programmare Arduino partendo dalle basi. Il sistema di sviluppo di Arduino, ovvero il suo IDE che comprende il compilatore, il linker e il caricatore è scaricabile da qui:

https://www.arduino.cc/en/Main/Software

Le istruzioni principali proprie di Arduino le troviamo invece qui:

https://www.arduino.cc/en/Reference/HomePage

Il resto delle istruzioni è linguaggio C e C++, alleggeriti.

Il linguaggio C fa distinzione tra minuscole e maiuscole, quindi il nome di una variabile come “Miavariabile” è diverso da “MiaVariabile”.

Pur utilizzando la sintassi e la semantica del C il linguaggio di arduino che permette di creare i sorgenti (detti sketch) sfrutta una struttura leggermente diversa dallo standard. In pratica devono esistere sempre almeno due routine, una nominata “setup” [void setup()]e l’altra “loop” [void loop()].

La prima viene eseguita dal processore solo una volta, all’avvio o al reset del micro. Conterrà le definizioni dei pin, i settaggi iniziali e tutto quanto è necessario per predisporre il corretto funzionamento del programma. La seconda è invece la routine principale che viene eseguita subito dopo il setup e, come il nome preannuncia, viene continuamente “ciclata” all’infinito. Tutto ciò che è compreso nella routine loop viene eseguito in sequenza fino alla fine per poi ricominciare dalla prima istruzione di tale routine. Ovviamente è possibile creare nuove subroutine da richiamare all’interno della principale, loop.

Le istruzioni principali da usarsi nel setup (ma nulla vieta di usarle, se necessario, anche nel loop) sono:

pinMode(NumeroPin, Modo);
Inizializza il pin “NumeroPin” a funzionare come input (INPUT, INPUT_PULLUP) o come output (OUTPUT).

Serial.begin(BaudRate);
Inizializza la seriale alla velocità indicata da BaudRate (4800, 9600, 19200, etc…)

Nel loop verrà inserito il programma principale, come già detto. In tale parte verranno usate principalmente le istruzioni come:

digitalWrite(NumeroPin, Stato);
Scrive nell’uscita “NumeroPin” lo stato 1 (HIGH) o 0 (LOW)

Variabile=digitalRead(NumeroPin);
Legge e mette in “Variabile” la lettura del pin “NumeroPin” (LOW o HIGH)

Variabile=analogRead(NumeroPin);
Legge e mette in “Variabile” la lettura analogica del pin “NumeroPin” (da 0 a 1023)

analogWrite(NumeroPin, Pwm);
Scrive il valore del duty cycle del PWM da applicare, in uscita al pin “NumeroPin” (da 0 a 255)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.