Arduino e sensori

http://www.zeppelinmaker.it
Analogici / Digitali
(Complessi)
Sensori
Pulsante
Termistore
Fotoresistenza
Rilevatore di pressione
Push Button
Pulsanti
LED
+

al pin 13

-

al pin GND
Resistenza
Resistenza

non ha un verso
Collegamento
Collegamento
Collegamento
Sketch
void setup() {
pinMode(13, OUTPUT);
pinMode(7, INPUT);
}
void loop() {
If (digitalRead(7) == HIGH) {
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}
}
Termistore
Termistore - PTC
resistenza

Come funziona?

temperatura
Termistore - NTC
resistenza

Come funziona?

temperatura
Lab - termistore
Collegamento
Collegamento
Sketch
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(analogRead(A0));
}
analogRead(A0);
0 – 1023
A0 A1 A2 A3 A4 A5
5v / 1024 = 0.0049v
1 step = 4.9mV
Lab - termostato caldaia
Termostato
Sketch
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
If ( analogRead(A0) > 500 ) {
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}
}
Altri sensori di
temperatura
LM36
LM36
LM36
n : 1024 = Vs : 5v
n:1024 = Vs:5000
(n⋅5000)
Vs=
1024

Ora devo convertire la tensione in una lettura di temperatura: Ts.
C'è un coeff. di conversione che vale 10mV/°C
Ts=

(500⋅n)
Vs (5000⋅n) 1
=
⋅( )=
10
1024
10
1024
LM36
Termocoppia
Termocoppia
Completare il termostato
rendendolo regolabile
Trimmer
trimmer
Sketch
void loop() {
dur = analogRead(A0);
...
}
Fotoresistenza
Fotoresistenza
resistenza

Come funziona?

luce
Collegamento
Collegamento
Sketch
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(analogRead(A0));
}
Lab - led foto sensibile
Sketch
void setup() {
pinMode(9, OUTPUT);
}
void loop() {
int val = analogRead(A0);
delay(500);
val = map(val, 0, 1023, 255, 0);
AnalogWrite(9, val);
}
PWM - Pulse Width Modulation
analogWrite(9, numero);
0 : 255
digitalWrite(9, HIGH/LOW);
map()
map ( value,
fromLow, fromHigh,
toLow, toHigh
)
val = map(val, 0, 1023, 255, 0);
AnalogWrite()
Non produce valori
continui, ma solo PWM
Fotodiodi / fototransistor
Rilevatore di pressione
collegamento
collegamento
Sketch
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.write(analogRead(A0));
}
Microfono
RFPower
Sunil Vallu
Sensori “complessi”

Accelerometro, Giroscopio, Bussola,
Gps, Internet...
Accelerometro
Bussola
Orologio
Internet?
http://www.zeppelinmaker.it
paolo.aliverti@gmail.com

Workshop arduino e sensori