Una presentazione orientata a quanti hanno bisogno di avere una panoramica iniziale della piattaforma arduino con un approccio alla "prima faccio, poi torno su quello che ho fatto e capisco meglio" ;)
12. Primo circuito: il diodo LED
Occorrente:
4 Cavetti
1 diodo LED
1 resistenza da 220 Ohm (rosso-rosso-marrone)
13. Primo circuito: il diodo LED
-Il piedino più lungo del LED è il
polo positivo;
-La resistenza è chiamata
resistenza di pull-up.
-La resistenza di pull-up serve a
limitare la corrente che scorre nel
LED. Si può calcolare con la
legge di Ohm...
-Per adesso montiamo il circuito,
e poi facciamo un pò di teoria!
14. Come scelgo la resistenza?
ROSSO: 1.8 Volt GIALLO: 1.9 Vol ARANCIO: 2.0 Volt
VERDE: 2.0 Volt BLU: 3.5 Volt AZZURRO: 3.0
Volt
(grazie a elettronicaincorso.it/ per i valori)
Un LED può sopportare al massimo una corrente che va dai 10 ai 30 mA circa.
Per non fornire troppa corrente al LED, e quindi per non bruciarlo, scegliamo
una resistenza opportuna usando la Legge di Ohm.
R (Ohm) = V (Volt) / I (Ampère)
Esempio con un LED rosso:
1- Per trovare V, sottraggo alla tensione di alimentazione (5v) quella di
funzionamento del LED
V = 5v - 1,8v = 3,2v
2- Divido il valore trovato per la corrente che può sopportare il LED (per
sicurezza 15 mA, ovvero 0,015A)
R = 3,2v / 0,015A = 213 Ohm
24. Esercizio 1
Fate in modo che il led rimanga acceso per un
secondo e mezzo e poi si spenga per mezzo
secondo
25. Esercizio 2
Fate in modo che il led sia attaccato al pin 12 di
arduino anziché il 13
26. Secondo circuito: due diodi LED
Occorrente:
6 Cavetti;
2 diodi LED;
2 resistenze da 220 Ohm (rosso-rosso-marrone)
27. Secondo circuito: 2 diodi LED
-Il piedino più lungo del LED è il polo
positivo;
-La resistenza è chiamata resistenza di pull-
up.
28. DoubleLed.ino prima parte
int led1 = 13;
int led2 = 5;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
[...]
29. DoubleLed.ino seconda parte
[...]
void loop() {
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(led2, LOW);
}
30. Terzo circuito: diodo LED e pulsante
Occorrente:
7 Cavetti;
1 diodo LED;
1 pulsante;
1 resistenza da 220 Ohm (rosso-rosso-marrone);
1 resistenza da 10 KOhm (marrone-nero-arancio).
31. Terzo circuito: diodo LED e pulsante
-Il piedino più lungo del LED è il polo
positivo;
-Quando il pulsante non è premuto, il pin
digitale sarà collegato a terra tramite la
resistenza di pull-down, quindi rivelerà un
segnale di tipo LOW (0v).
-Se premo il pulsante, il pin verrà collegato
direttamente alla tensione di alimentazione
e rivelerà un segnale di tipo HIGH (5v).
-In base al tipo di segnale rivelato, Arduino
può essere programmato per fare delle
azioni, come ad esempio accendere il
nostro LED.
32. LedButton.ino prima parte
int led = 13;
int button = 2;
int val;
void setup() {
pinMode(led, OUTPUT);
pinMode(button, INPUT);
}
[...]
33. LedButton.ino seconda parte
[...]
void loop() {
val = digitalRead(button);
if (val == HIGH) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
34. Quarto circuito: diodo LED e
fotoresistenza.
Occorrente:
7 Cavetti;
1 diodo LED;
1 fotoresistenza;
1 resistenza da 220 Ohm (rosso-rosso-marrone);
1 resistenza da 10 KOhm (marrone-nero-arancio).
35. Quarto circuito: diodo LED e
fotoresistenza.
-Ai capi della fotoresistenza
troveremo una tensione variabile,
che ci può dire quanta luce c'è
nella stanza.
-Come si fa a misurare una
tensione che non dà un segnale di
tipo HIGH (5v) o LOW (0v)......ma
2,3v o 3,56v oppure 4,12v?
UTILIZZIAMO I PIN ANALOGICI!
I pin analogici restituiscono un
valore che va da 0 a 1023.
tensione = valore x 0,005v
36. LedPhoto1.ino prima parte
int luce = 0;
int val;
void setup() {
Serial.begin(9600);
}
[...]
37. LedPhoto1.ino seconda parte
int luce = 0;
int val;
void setup() {
Serial.begin(9600);
}
void loop() {
val = analogRead(luce);
Serial.println(val);
delay(500);
} Tools -> Serial Monitor
38. LedPhoto2.ino prima parte
int luce = 0;
int val;
int led = 13;
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
}
39. LedPhoto2.ino seconda parte
void loop() {
val = analogRead(luce); //da 0 a 1023
Serial.println(val);
if(val < 200){
digitalWrite(led, HIGH);
Serial.println("poca luce: accendo il led!");
} else {
digitalWrite(led, LOW);
Serial.println("molta luce: spengo il led!");
}
Serial.println("");
delay(500);
}
41. Quinto circuito: sensore di
temperatura LM35.
Il nostro primo vero sensore!
-LM35 è un sensore di
temperatura LINEARE.
-LM35 ci dà in output una
tensione proporzionale alla
temperatura secondo questa
formuletta:
temperatura = tensione x 100
-Questo vuol dire che per usare la
formuletta dobbiamo prima
convertire il valore analogico in
una tensione usando la relazione
di prima:
tensione = valore x 0,005v
42. LM35.ino prima parte
int temp;
int val;
int sensor = 0;
void setup() {
Serial.begin(9600);
}
[...]
43. LM35.ino seconda parte
void loop() {
//Leggo il sensore e applico la formuletta
val = analogRead(sensor);
temp = (5./1024.) * val * 100.;
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.println(" gradi.");
Serial.println("");
delay(500);
}