Arduino/facciamo lampeggiare un led

Da PNLUG.
Versione del 9 mar 2014 alle 17:58 di Cloc3 (Discussione | contributi) (l'upload)


Gestire l'ouput usando un led

#define LUCCIOLA 13


Perché TREDICI?
Questa è la prima istruzione che ogni principiante apprende nei primissi approcci con Arduino.

LUCCIOLA è un nome di fantasia. Maiuscolo per caratterizzare visivamente le costanti (convenzione).
13 è un numero che corrisponde ad uno dei canali fisici di input di Arduino.
Dunque esiste davvero. Se arduino fosse stato progettato con dodici pin di input/ouput digitale, il nostro programma sarebbe sbagliato.

Noi, seguendo le guide ufficiali degli sviluppatori di Arduino, abbiamo incominciato a lavorare in linguaggio C. Non è strettamente indispensabile utilizzare il linguaggio C, per programmare Arduino, ma è necessario usare un linguaggio di programmazione di basso livello, per interfacciarci direttamente con l'hardware, fin dalla prima riga di codice.

 #define LUCCIOLA 13
 
 void setup() {
   pinMode(LUCCIOLA,OUPUT);
 }
 
 void loop() {
  digitalWrite(LUCCIOLA,HIGH);
  delay(1000);
  digitalWrite(LUCCIOLA,LOW);
  delay(1000);
 }

È meraviglioso. Non fosse inglesa, potrebbe capire anche un bambino.
Quasi tutti i termini usati corripondono a chiamate di libreria, cioè a strumenti messi a disposizione dagli sviluppatori di Arduino per semplificare la vita ai propri utenti.

setup è la sezione di preparazione dello sketch. Viene eseguita una volta sola nel momento in cui si carica lo sketch, oppure nel momento in cui si ripristina l'alimentazione a una scheda Arduino sulla quale lo sketch era stato caricato precedentemente. Nel nostro caso serve per definire la funzione del canale 13.

loop è la sezione ciclica, che viene ripetuta sistematicamente dopo il setup, fino allo spegnimento di arduino.

 digitalWrite(LUCCIOLA,HIGH);

I programmi si scrivono, un po' come i testi normali, da sinistra verso destra, e poi vengono inviati al compilatore.
Il compilatore li riceve come le merci sul nastro trasportatore di un supermercato. Da destra verso sinistra:

  1. HIGH è un input: "Cosa voglio scrivere?"
  2. LUCCIOLA è un ouput "Dove lo voglio scrivere?"
  3. digitalWrite() è un processo: "Cosa voglio fare di questo input, verso questo ouput?

Possiamo partire. Anzi no.
Arduino è un oggetto fisico, dobbiamo prepare il led. Un attimo di attenzione. Un led possiede due pin asimmetrici. Uno lungo e uno corto. Quello lungo deve essere collegato al polo positivo, perché i led sono diodi, fisicamente asimmetrici. Collegati a rovescio non emettono luce e possono rovinarsi. La guida suggerisce di interporre anche una resistenza di protezione. Farà diminuire un po' la luminosita e la corrente assorbita, ma in certi casi non è strettamente indispensabile, almeno se si lavora con un solo led.

Eccoci pronti. Apriamo la ide di arduino, cerchiamo l'esempio blink già pronto, clicchiamo sul pulsante per eseguire l'upload...

Anzi no. Se siamo in linux e ci vogliamo attrezzare con arscons, digitiamo semplicemente:

 scons upload

e il gioco è fatto.

...