Hallo,
ich habe mehrere Instanzen und mehrere DHT22 Sensoren.
Kann ich diese Instanzen in einer Schleife auch ähnlich eines Arrays ansprechen mit [ i ] und so viel Code sparen?
Die Instanzen:
DHT dht_0 (DHT_PIN_0, DHT_TYPE_A);
DHT dht_1 (DHT_PIN_1, DHT_TYPE_A);
DHT dht_2 (DHT_PIN_2, DHT_TYPE_A);
...
Ähnlich eines Arrays erzeugen: DHT dht[Anzahl] = {{ DHT_PIN_0, DHT_TYPE_A},{DHT_PIN_1, DHT_TYPE_A}, ...} ...geht das so??
In main Loop dann viel Code, für jede Insatnz das gleiche:
dht_nr = 0; // Sensor Nr.
retry = DHT_RETRY; // Retry to get valid Data
hum_rel_tmp = 0.0; // Humidity temporery
tem_tmp = 0.0; // Humidity temporery
do{
hum_rel_tmp = dht_0.readHumidity();
tem_tmp = dht_0.readTemperature();
if(retry != DHT_RETRY) { delay(DHT_PAUSE); }
retry--;
} while( ((isnan(tem_tmp))||(isnan(hum_rel_tmp))) && (retry > 0) );
if(retry > 0){
hum_rel[dht_nr] = hum_rel_tmp;
temp[dht_nr] = tem_tmp;
}
dht_nr = 1; // Sensor Nr.
retry = DHT_RETRY; // Retry to get valid Data
hum_rel_tmp = 0.0; // Humidity temporery
tem_tmp = 0.0; // Humidity temporery
do{
hum_rel_tmp = dht_1.readHumidity();
tem_tmp = dht_1.readTemperature();
if(retry != DHT_RETRY) { delay(DHT_PAUSE); }
retry--;
} while( ((isnan(tem_tmp))||(isnan(hum_rel_tmp))) && (retry > 0) );
if(retry > 0){
hum_rel[dht_nr] = hum_rel_tmp;
temp[dht_nr] = tem_tmp;
}
usw. ...
Also Anstatt z.B. "hum_rel_tmp = dht_0.readHumidity();" so ähnlich etwa "hum_rel[0] = dht[0].readHumidity();" ??
Vielen Dank!