Salve ragazzi giuro che distruggo tutto. Sono sullasoglia della crisi di nervi.
Dunque ho scritto tutto il codice con IDE 0023 ma sono costretto mio malgrado a passare alla 1.0 poichè su arduino mega non mi funziona la libreria SD ( poco male )
Ho ricorretto tutto il codice e tutto funziona ( in pratica il grosso era sostituire Wconstant.h con Arduino.h )
solo che ho circa 10 librerie incluse quindi lavoro laborioso.
Tutto funziona eccetto la gestione del sensore DHT22 o meglio funziona ma...
ecco il codice funzionante sulla 0023
myDHT22.readData(); // avvio la lettura dei dati
float temp = myDHT22.getTemperatureC();
float umidity = myDHT22.getHumidity();
char buffert [10];
dtostrf(temp, 4, 1, buffert); // tramite questo comando converto la variabile temp (float ) in buffer mantenedo 4 caratteri totali e 1 dopo la virgola
ht1632_putchar( 42, 0, buffert[0], 3);
ht1632_putchar(48, 0, buffert[1], 3);
//ht1632_putchar(16, 9, buffert[2], 2);
ht1632_plot (54, 6,2);
ht1632_puttinychar(56, 2, buffert[3], 3);
ht1632_puttinychar(61, 0, 'C', 2);
char bufferu[10];
dtostrf(umidity, 4, 1, bufferu); // tramiste questo comando converto la variabile temp (float ) in buffer mantenedo 4 caratteri totali e 1 dopo la virgola
ht1632_putchar(42, 9, bufferu[0], 3);
ht1632_putchar(48, 9, bufferu[1], 3);
//ht1632_putchar(50, 9, bufferu[2], 1);
ht1632_plot (54, 15,1);
ht1632_puttinychar(56, 11, bufferu[3], 3);
ora guardate cosa succede.
Con la ide 0023 la funzione dtostrf sembra inserire nel buffer correttamente i valori
Mentre con la ide 1.0 NO
ho provato a cercare il mio errore ma non capisco.
Ho provato con l'esempio prensente dentro la libreria
char buf[128];
sprintf(buf, "Integer-only reading: Temperature %hi.%01hi C, Humidity %i.%01i %% RH",
myDHT22.getTemperatureCInt()/10, abs(myDHT22.getTemperatureCInt()%10),
myDHT22.getHumidityInt()/10, myDHT22.getHumidityInt()%10);
ho aggiunto la libreria all'inizio
#include <stdio.h>
ma impapocchia numeri
come ne esco ?
Grazie mille
Daniele