Misurazione di temperatura e umidità con Arduino: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Riga 150:
=== Codice ===
#include <SimpleDHT.h>
//Dichiaro delle variabili
const unsigned int DHT = 2;
//const unsigned int ECHO = 12;
//const unsigned int TRIGGER = 13;
//Definisco la Velocità del suono centimetri/microsecondo
const float Vs = 0.0343;
const int cifra1 = 3;
const int cifra2 = 4;
const int cifra3 = 5;
//const int cifra4 = 0;
const int a = 7;
const int b = 8;
const int c = 9;
const int d = 10;
const int e = 11;
const int f = 12;
const int g = 13;
const int dp = 6;
const int ritardo = 500;
SimpleDHT11 dht11(DHT);
void setup() {
// pinMode(ECHO, INPUT);
// pinMode(TRIGGER, OUTPUT);
Serial.begin(9600);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(dp, OUTPUT);
pinMode(cifra1, OUTPUT);
pinMode(cifra2, OUTPUT);
pinMode(cifra3, OUTPUT);
// pinMode(cifra4, OUTPUT);
}
void loop() {
float temp = rilevaTemperatura();
float n = 05.0;
stampa(temp);
}
void stampa(float n) {
int cifre[3] = {};
cifre[0] = n/10;
cifre[1] = n - cifre[0] * 10;
cifre[2] = (n*10) - (cifre[0] * 100) - (cifre[1] * 10);
// cifre[3] = (n*100) - (cifre[0] * 1000) - (cifre[1] * 100) - (cifre[2] * 10);
for(int i = 0; i < sizeof(cifre); i++) {
int stampa = cifre[i];
switch(i) {
case 0:
digitalWrite(cifra1, LOW);
digitalWrite(cifra2, HIGH);
digitalWrite(cifra3, HIGH);
digitalWrite(dp, LOW);
delay(ritardo);
break;
case 1:
digitalWrite(cifra1, HIGH);
digitalWrite(cifra2, LOW);
digitalWrite(cifra3, HIGH);
digitalWrite(dp, LOW);
delay(ritardo);
break;
case 2:
digitalWrite(cifra1, HIGH);
digitalWrite(cifra2, HIGH);
digitalWrite(cifra3, LOW);
digitalWrite(dp, HIGH);
delay(ritardo);
break;
}
switch(stampa) {
case 0:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;
case 1:
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 2:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 3:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 4:
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 5:
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 6:
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 7:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 9:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
default:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
}
}
}
//int rilevaDistanza() {
// digitalWrite(TRIGGER, LOW);
// delayMicroseconds(5);
// digitalWrite(TRIGGER, HIGH);
// delayMicroseconds(10);
// digitalWrite(TRIGGER, LOW);
//
// long tempo = pulseIn(ECHO, HIGH) / 2;
// float spazio = tempo * Vs;
// return(int(spazio));
//}
float rilevaTemperatura() {
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
}
Serial.print("Temperatura " + String(temperature) + " °C\n");
return(float(temperature));
}
</syntaxhighlight>
=== Conclusioni2 ===
|