Igrometro

Salve buonasera a tutti. Avrei un problema con l'igrometro. Ho determinato un codice che rileva appunto il valore dell'igrometro a seconda dell'umidità. Però siccome l'umidità appunto si misura in "%", non so come ricavare il valore in "%", se qualcuno di buona volontà potesse aiutarmi grazie mille.

Che sensore usi?
Posta anche lo sketch.

In linea di massima credo basti usare la funzione map() per portare il valore in percentuale.

}

[code]
int sensorValue = 0;
int umidita = 0;
void setup() {
 Serial.begin(9600);

}
void loop() {
 sensorValue = analogRead(0);
 print("L'umidita' del terreno e':");
 Serial.println(umidita);
 println("%");
 delay(100);

[/code]

>Paolo99: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

Il sensore è: YL-100

>Paolo99: ... vogliamo rispettarlo il REGOLAMENTO ? hai letto il mio post #3 ? ? ?

Guglielmo

Cercando su google YL-100 compaiono sensori di umidità delle fogge più strane. Comunque per cominciare a divertirti occorre per prima cosa calibrare il sensore, anche se con quel tipo di sensore le misurazioni saranno sempre molto imprecise.
Calibrare il sensore per il 100% è facile, basta immergerlo in un bicchiere di acqua. Per lo 0% è più difficile, ma per cominciare potresti asciugare bene il sensore (magari anche con una passatina leggera di phon) e leggere che valore ti da con il tuo sketch. Che contiene alcuni errori:
In void setup aggiungi:

 pinMode(A0, INPUT);

Alla riga

 sensorValue = analogRead(0);

Sostituisci

 sensorValue = analogRead(A0);

Alla riga

 Serial.println(umidita);

Sostituisci

 Serial.println(sensorValue);

Con queste correzioni dovresti ottenere due valori (compresi fra 0 e 1023) che individuano lo 0% e il 100%. Chiamiamoli Hmin e Hmax.
Al posto dell'istruzione

 Serial.println(sensorValue);

Adesso metti

 Serial.println(map(sensorValue, Hmin. Hmax, 0, 100));

Se non ho sbagliato a scrivere, dovrebbe funzionare.

Ciao,
P.
P.S. CORRI A PRESENTARTI, SE NON L'HAI GIA' FATTO!

Grazie mille funziona :slight_smile:

>Paolo99: ora mi sono stancato del tuo mancato rispetto del REGOLAMENTO, per cui ... ti informo che se NON sistemerai il tuo post come ho chiesto al post #3 e chiesto di nuovo al post #5, applicherò il BAN sul tuo account.

Guglielmo

Mi scusi Sig. Guglielmo non capiterà più. Scusi il mio comportamento scorretto.