Viene creato un semplice programma per far lampeggiare un LED, prima collegato al pin 13 e poi ad altro pin. Viene costruito un primo circuito su di una basetta sperimentale.
Accensione di un LED sul pin 13
Faremo lampeggiare un LED in modo pulsato e regolare.
Utilizzeremo il LED integrato nella scheda, indicato con la lettera L e collegato alla porta 13; esso ha una resistenza anch’essa integrata sulla scheda, e ciò consentirà di poter utilizzare in alternativa un LED inserito direttamente nei pin GND e 13.
- LED rosso.
inizializzazione
inizio
disponi il pin digitale 13 per l’OUTPUT;
porta il pin digitale 13 al potenziale più alto;
fine
ciclo
inizio
fine
Con mBlock
|
|
|
|
Con Tinkercad
(https://www.instructables.com/id/Blink-an-LED-With-Arduino-in-Tinkercad/)
Dietro le quinte:
due operazioni:
- imposta l'uscita del pin digitale 13:
si è informato Arduino che deve far uso del pin 13 da utilizzare come output - come ALTO:
si è detto ad Arduino di portare il pin 13 al livello alto di tensione, cioè a 5 V.
void setup(){
// SI SCRIVONO LE CONDIZIONI DI PARTENZA
pinMode(13,OUTPUT);
// IMPOSTA IL PIN 13 COME USCITA
digitalWrite(13,1);
// IL PIN 13 GENERA 5 V
}
void loop(){
// QUI GIRA IL PROGRAMMA CHE SI DEVE RIPETERE
// ALL'INFINITO. IN QUESTO CASO NULLA!
}
Portando il livello del pin 13 da ALTO a BASSO, il parametro 1 in digitalWrite verrà sostituito dallo 0.
Con Otto Blockly
Lampeggio del LED sul pin 13
inizializzazione
inizio
disponi il pin digitale 13
l’OUTPUT;per
fine
ciclo
inizio
porta il pin digitale 13 al
potenziale più alto;
aspetta 1000 ms;
porta il pin digitale 13 al potenziale più basso;
aspetta 1000 ms;
fine
Con mBlock
|
con Tinkercad
Dietro le quinte
void setup() {
pinMode(13, OUTPUT); // IMPOSTA IL PIN 13 COME USCITA
}
void loop() {
digitalWrite(13, HIGH); // GENERA 5 V AL PIN 13
delay(1000); // ATTENDI UN SECONDO
digitalWrite(13, LOW); // GENERA 0 V AL PIN 13
delay(1000); // ATTENDI UN SECONDO
}
Con Otto Blockly
Semplice no? Semplice perché Arduino è stato pensato anche per creativi che non hanno dimestichezza con la progettazione software.
Il comando delay(millisecondi) interrompe l’esecuzione del programma per i millisecondi specificati; Arduino continua a lavorare!
La basetta sperimentale
Una basetta sperimentale, conosciuta anche come tavolozza sperimentale o breadbord, permette di costruire rapidamente, semplicemente e senza effettuare saldature, un circuito inserendo opportunamente gli estremi dei dispositivi nei suoi fori.
È caratterizzata da una serie di fori in linee e colonne; in figura si possono notare, sia nella base superiore che in quella inferiore, le linee di alimentazione colorate, azzurre per i 0 V e rosse per i 5 V; le colonne, in posizione perpendicolare alle linee d'alimentazione, sono destinate ai componenti.
Tutti i punti di una linea di alimentazione sono collegati fra loro così come i punti di una stessa colonna.
Costruiamo il nostro primo circuito
Non è possibile collegare direttamente l’anodo del LED rosso alla porta 5 V ed il catodo alla porta GND; infatti il LED rosso può sopportare una tensione massima di 1,8 V per cui si può bruciare con una tensione di 5 V: è perciò necessario interporre un dispositivo tra l'alimentazione ed il LED che porti ad una diminuzione del potenziale di almeno 3,2 V.
Vedremo che può andar bene un resistore di resistenza di 220V.
Componenti:
- LED rosso;
- 2 cavetti MM (rosso, nero);
- Resistenza di 220 Ω (in seguito sarà giustificata la sua presenza).
Schema
|
Schema elettrico relativo al circuito costruito. |
Avremmo potuto invertire la posizione del LED e della resistenza: in questo caso lo schema elettrico sarebbe stato il seguente:
|
La tensione di 5 V questa volta è applicata ad un capo della resistenza. |
I due circuiti sono equivalenti! L'ordine non è determinante per il funzionamento.
Prova ad effettuare misurazioni con il tester di TinkerCad.
Il resistore ed il LED sono attraversati dalla medesima corrente; in elettrodinamica si dice che i due dispositivi sono in serie.
Accensione
Il codice è identico al precedente solo che bisogna sostituire la porta 13 con la 8
void setup() {
pinmode(8,OUTPUT);
digitalWrite(8,HIGH);
}
void loop() {
}
Lampeggio
void setup() {
pinMode(8, OUTPUT); // configura il pin 8 come output
}
void loop() {
digitalWrite(8, HIGH); /* accende il LED (HIGH è il livello del potenziale 5 V)*/
delay(1000); // attende 1 s
digitalWrite(8, LOW); /* spegne il LED portando il livello del potenziale su 0 V */
delay(1000); // attende 1 s
}
Con Otto Blockly