Arduino/facciamo lampeggiare un led: differenze tra le versioni
(lo sketch) |
(l'upload) |
||
| Riga 1: | Riga 1: | ||
| − | {{TOC|align= | + | {{TOC|align=right}} |
<div style="margin: 0 auto;text-align:justify> | <div style="margin: 0 auto;text-align:justify> | ||
= Gestire l'ouput usando un led = | = Gestire l'ouput usando un led = | ||
| Riga 8: | Riga 8: | ||
Perché TREDICI?<br> | Perché TREDICI?<br> | ||
| − | Questa è la prima istruzione che ogni principiante apprende nei [http://arduino.cc/en/tutorial/blink primissi] approcci con | + | Questa è la prima istruzione che ogni principiante apprende nei [http://arduino.cc/en/tutorial/blink primissi] approcci con Arduino. |
LUCCIOLA è un nome di fantasia. Maiuscolo per caratterizzare visivamente le costanti (convenzione).<br> | LUCCIOLA è un nome di fantasia. Maiuscolo per caratterizzare visivamente le costanti (convenzione).<br> | ||
| − | 13 è un numero che corrisponde ad uno dei canali fisici di input di | + | 13 è un numero che corrisponde ad uno dei canali fisici di input di Arduino.<br> |
Dunque esiste davvero. Se arduino fosse stato progettato con dodici pin di input/ouput digitale, il nostro programma sarebbe sbagliato. | Dunque esiste davvero. Se arduino fosse stato progettato con dodici pin di input/ouput digitale, il nostro programma sarebbe sbagliato. | ||
| − | Noi, seguendo le [http://arduino.cc/en/Reference/HomePage guide ufficiali] degli sviluppatori di | + | Noi, seguendo le [http://arduino.cc/en/Reference/HomePage 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 | #define LUCCIOLA 13 | ||
| Riga 29: | Riga 29: | ||
} | } | ||
| + | È meraviglioso. Non fosse inglesa, potrebbe capire anche un bambino.<br> | ||
| + | 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. | ||
| + | <b>setup</b> è 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. | ||
| + | |||
| + | <b>loop</b> è 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.<br> | ||
| + | Il compilatore li riceve come le merci sul nastro trasportatore di un supermercato. Da destra verso sinistra: | ||
| + | |||
| + | # <b>HIGH</b> è un input: "Cosa voglio scrivere?" | ||
| + | # <b>LUCCIOLA</b> è un ouput "Dove lo voglio scrivere?" | ||
| + | # <b>digitalWrite()</b> è un processo: "Cosa voglio fare di questo input, verso questo ouput? | ||
| + | |||
| + | Possiamo partire. Anzi no.<br> | ||
| + | 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 <b>deve</b> essere collegato al polo positivo, perché i led sono diodi, fisicamente asimmetrici. Collegati a rovescio non emettono luce e possono rovinarsi. La [http://arduino.cc/en/tutorial/blink 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 [https://github.com/suapapa/arscons arscons], digitiamo semplicemente: | ||
| + | scons upload | ||
| + | |||
| + | e il gioco è fatto. | ||
| + | |||
| + | ... | ||
</div> | </div> | ||
Versione delle 17:58, 9 mar 2014
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:
- HIGH è un input: "Cosa voglio scrivere?"
- LUCCIOLA è un ouput "Dove lo voglio scrivere?"
- 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.
...