Lettura del sensore umidita terreno sballata

Ciao ragazzi un ulteriore problema con l'igrometro, invece di leggermi un valore basso quando la terra e secca me lo legge quando la terra e bagnata

Inverti la scala dei valori.

Cioe in che senso,vuoi che ti posto lo sketch?

allora io ho messo questo tipo di sketch:

int sensorPin = A3;
int sensorValue = 0;
 
void setup() {
  Serial.begin( 9600 );
  pinMode(sensorPin, INPUT);
}
 
void loop() {
  sensorValue = analogRead(sensorPin);
  Serial.print("Valore: ");
  Serial.println( sensorValue );
  delay(500);
}

il problema che non funziona correttamente ho sbagliato qualcosa?
il sensore è yl 69 e poi la schedina yl 38
in pratica quando lo bagno arriva a 40 e se lo toglo dalla terra massimo che mi arriva e 350/400

Guarda questo sketch --> Arduino and Soil Moisture Sensor YL-69
Quando è in acqua segna meno di 370, quando asciutto più di 600.

Puoi usare questa formula per la percentuale.

int H = analogRead(SensorPin);
sensorValue = (1023-H)*100/1023;

Oppure puoi usare la funzione map() sempre che l'andamento del sensore sia lineare. Inoltre ti serve sapere i valori del massimo e del minimo.

ok perfetto, grazie
stasera appena arrivo a casa provo cosi. ma dovrebbe essere a posto...

Ma lo sketch è banalissimo.
Il problema di avere la scala umido->secco invertita, non potrebbe essere influenzata da come si collegano i cavetti tra modulino e "forchetta" ?

O provato a invertili non cambia nulla

Ciao a tutti allora ho provato uno sketch dove mi.faccio stampare secco se il valore e tra 1000 e 600, umido se tra 600 e 370 e allagato se da 370 in giu e N/O se il sensore e staccato oppurr sopra i 1000 cmq se lo.metto nella terra umida mi da 70 se lo.metto nella terra seccccccccccccccccca mi da 400 circa..... tra poco lo butto, :smiley: :smiley: :smiley: :smiley:
P.S. ho provato anche ad invertire i cavi che vanno dalla forchettina al modulo ma non cambia nulla

Perchè buttarlo ? Come detto prima da @PaoloP, basta adattare lo sketch ai valori che rilevi.
Se umido per lui è 70 e secco 400, adattati a quei valori.
A quel link al tipo gli da tra 1000 e 370, quindi 630 valori intermedi, il tuo pare solo 330 valori intermedi. Se non da i numeri (esempio valore 600 se lo immergi in acqua!! ) mi pare lo puoi usare lo stesso.

e vero hai ragione adesso faccio due o tre prove a secco e in acqua grazie mille,
quello che non capisco e come sia possibile che lo stesso sensore dia due letture diverse.....boh ::slight_smile: ::slight_smile: ::slight_smile: ::slight_smile:

Rieccomi, buongiorno a tutti...dopo esser riuscito con successo a stampare tutti i valori sul LCD ho provato nuovamente l'igrometro per capire nuovamente quali fosse la mia scala di paragone.....mi sono accorto che e di nuovo diversa da quella di ieri...... ce qualcosa che si può fare per capire se la scheda YL38 opppure il sensore YL69 sono rotti.... :sob: :sob: :sob:

Grazie a tutti

ce qualcosa che si può fare per capire se la scheda YL38 opppure il sensore YL69 sono rotti....

Cosa vuoi pretendere da un pezzo di circuito stampato.....

questo e' quello che hai


Il sensore YL69 e' composto solo da due strisce di rame
Del modulo YL38 usi solo una resistenza e un condensatore.

In pratica e' un partitore di tensione, dove il ramo positivo è la resistenza da 10K, il ramo negativo è la resistenza che c'è tra i due elettrodi in presenza di terreno piu' o meno umido.

Dimmi tu se si può chiamare sensore un accrocchio del genere

Per il resto, sul modulino c'e' un chip comparatore di soglia, "tarabile" con il trimmer, ma serve solo per l'uscita digitale (0 o 1 a seconda del valore soglia impostata con il trimmer).

Brunello:
Cosa vuoi pretendere da un pezzo di circuito stampato.....

quindi cosa posso fare con il pezzo di circuito stampato???
quello che non mi va giu assolutamente e che è una cosa banalissima e non riesco a venirci a capo

Brunello:
Cosa vuoi pretendere da un pezzo di circuito stampato.....

questo e' quello che hai


Il sensore YL69 e' composto solo da due strisce di rame
Del modulo YL38 usi solo una resistenza e un condensatore.

In pratica e' un partitore di tensione, dove il ramo positivo è la resistenza da 10K, il ramo negativo è la resistenza che c'è tra i due elettrodi in presenza di terreno piu' o meno umido.

Dimmi tu se si può chiamare sensore un accrocchio del genere

Quindi da quello che vedo, funziona come un sensore di temperatura automobilistico, il segnale viene tenuto alto da una resistenza di pullup, poi la resistenza interna del sensore diminuisce con l'aumento della temperatura facendo "scendere" il valore del segnale sul pin ADC in ECU, questa computa la temperatura attuale dal valore letto rispetto ad una tabella di linearizzazione visto che non è lineare.

Ovviamente, lo scopo di questo sensore è diverso da quello da me indicato!

Si però il.funzionamento in teoria è lo stesso

Scusatemi ragazzi.... Quindi?

non so se ti potesse essere d'aiuto, ho trovato un'articolo che parla di sensori come quello che hai tu o simile in funzionamento, ecco il link

Ho trovato anche un'interessante articolo riguardo la difficoltà di rilevamento affidabile dell'umidità del terreno, qui

spero ti possa essere d'aiuto.

perfetto :smiley: :smiley: :smiley: :smiley: :smiley:
grazie mille, lo sapevo che il trimmer era regolabile ahaha ma non volevo fare cazzate....
oggi provo e ti faccio sapere
grazie :wink: