workshop arduino e sensori
DESCRIPTION
Sono le dispense del corso/workshop su arduino e l'impiego dei sensori. Nel corso spiego come utilizzare i sensori analogici e digitali.TRANSCRIPT
Arduino e sensori
http://www.zeppelinmaker.it
Analogici / Digitali(Complessi)
Sensori
PulsanteTermistore
FotoresistenzaRilevatore di pressione
Push Button
Pulsanti
+ -
LED
al pin 13 al pin GND
Resistenza
Resistenza
non ha un verso
Collegamento
Collegamento
Collegamento
Sketchvoid setup() {
pinMode(13, OUTPUT);pinMode(7, INPUT);
}
void loop() {If (digitalRead(7) == HIGH) {
digitalWrite(13, HIGH);} else {
digitalWrite(13, LOW);}
}
Termistore
Termistore - PTCCome funziona?
temperatura
resi
sten
za
Termistore - NTCCome funziona?
temperatura
resi
sten
za
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
Sketchvoid setup() {
pinMode(13, OUTPUT);}
void loop() {If ( analogRead(A0) > 500 ) {
digitalWrite(13, HIGH);} else {
digitalWrite(13, LOW);}
}
Altri sensori di temperatura
LM36
LM36
LM36n : 1024 = Vs : 5v
n:1024 = Vs:5000
Ora devo convertire la tensione in una lettura di temperatura: Ts. C'è un coeff. di conversione che vale 10mV/°C
Ts=Vs10
=(5000⋅n)
1024⋅(
110
)=(500⋅n)
1024
Vs=(n⋅5000)
1024
LM36
Termocoppia
Termocoppia
Completare il termostato rendendolo regolabile
Trimmer
trimmer
Sketch
void loop() {
dur = analogRead(A0); ...}
Fotoresistenza
FotoresistenzaCome funziona?
luce
resi
sten
za
Collegamento
Collegamento
Sketch
void setup() {Serial.begin(9600);
}
void loop() {Serial.println(analogRead(A0));
}
Lab - led foto sensibile
Sketchvoid 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);
digitalWrite(9, HIGH/LOW);
0 : 255
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?