Piranometro con LDR

Salve a tutti,
ho realizzato una stazione meteo che rileva temperatura, umidità e luminosità.
Per quanto riguarda i primi due valori non ho alcun problema, la difficolta' e' sorta con la misura della luminosita'.
La sto realizzando con un LDR e devo misurare i watt su metro quadro, acquisisco i valori in lux e tramite una formula ottengo i w/mq.
Ma poiche' il valore della luce del sole dovrebbe essere dell'ordine di centinaia di w/mq e io invece misuro solo qualche decina di w/mq, non sto capendo dove sto sbagliando, o nella scelta del sensore o nel calcolo?
Il sensore e' collegato con una resistenza da 1 kohm in pull-down
VCC_ _ _ _
I
I
LDR
I
I---------------------Vout
I
R (da 1 Kohm)
I
I
I
GND

Il codice che uso e' il seguente:

float Calculate_Sensor_Ligt(float SensorLightWatt){
float vout = 0.0049 * analogRead(SensorPinLight); // tensione in volt (5/1024=0.0049)
float SensorLightLux = 5000 * (vout / (5 - vout));
SensorLightWatt = SensorLightLux * 0.0015; // 1 lux = (1/683) Watt/m^2
return SensorLightWatt;
}

Grazie in anticipo.

non so, forse perchè se in casa? il sensore è in ombra? datasheet del sensore?

Ciao, questo e' il datasheet del sensore che sto usando:

http://www.advancedphotonix.com/ap_products/pdfs/PDV-P9203.pdf

All'ombra ho misurato 6,47 w/mq, credo che siano pochini!

1K è troppo poco. Devi fare un partitore di tensione, tenendo conto del valore della tua fotoresistenza, che nello schema di Wikipedia rappresenta R1.

Ho provato sia con una resistenza da 1 kohm che con una da 10 kohm nel secondo caso pero' la formula del partitore cambia e diventa

float Calculate_Sensor_Ligt(float SensorLightWatt){
float vout = 0.0049 * analogRead(SensorPinLight); // tensione in volt (5/1024=0.0049)
float SensorLightLux = 500 * (vout / (5 - vout)); // 1 lux = 1 lumen/m^2 (10k pull down) [ SensorLightLux = ((2500 / vout) - 500) / 10; // (10k pull up) ]
SensorLightWatt = SensorLightLux * 0.0015; // 1 lux = (1/683) Watt/m^2
return SensorLightWatt;
}

Ho assunto come valore della resistenza dell'LDR (500/LUX) Kohm come indicato qui:

Ho assunto come valore della resistenza dell'LDR (500/LUX) Kohm come indicato qui:

No. Tu hai messo un datasheet di un componente in cui si legge che la resistenza della fotoresistenza cambia da 20 Megaohm (buio) a 5/20 Kiloohm (luce).
Quindi devi mettere una R adeguata al primo valore.

Non riesco a capire in base al datasheet come determinare la resistenza relativa all'LDR.

La resistenza della fotoresistenza varia da un massimo di 20M ad un minimo di 5/20K per condizioni rispettivamente di oscurità e piena illuminazione

Allora mettiamo che io consideri 10 kohm per la fotoresistenza (LDR), per calcolare la quantità di luce del sole. Come faccio a determinare l'altra resistenza (R) se non conosco la Vout = Vcc * [R/(R+LDR)] per il partitore di tensione ?

VCC_ _ _ _
I
I
LDR
I
I---------------------Vout
I
R (?)
I
I
I
GND

inoltre il cambiamento della resistenza non é lineare alla intensitá del sole.
Ciao Uwe

Inoltre mettici che nemmeno il sole ha un'intensità variabile in modo lineare.
Piccolo OT: quando ho letto il titolo ho pensato "questo è un altro come quello che cercava i tartufi con Arduino, e addirittura vuole trovare i pesci pirana, ma capitano tutti qui? N'altro poco arriveranno cercatori d'oro, costruttori della pietra filosofale, maghi, streghe, archeologi :~ :~ :~". Invece sono soltanto un ignorante, mi scuso ma non potevo tenermi questa vergogna dentro :grin:

Vcc --FOTO---+---R2----GND
             |
           Vout

Per R2 puoi usare un valore di 10K perché (considera la fotoresistenza come R1):

Condizione di buio (R1=20M)
a=R2/(R1+R2) = 10K/(20M+10K)= 0,0000005 da cui Vout = 5*0,0000005=0,000003V approssimato 0V

Condizione di illuminazione
a=R2/(R1+R2) = 10K/(20K+10K) = 0,333333 da cui Vout = 1,6666 = 1,67V

Se metti la R2 da 100K è ancora meglio:
Condizione di buio: Vout=0,025V
Condizione di luce: Vout=4,17V
Il range di letture aumenta, aumentando la precisione.
Poi le formulette le riadatti.

Forse dovrebbe rivedere la tipologia di conversione; se quel Vout rappresenta la connessione ad un ADC di Arduino mi sa che un'impedenza così elevata creerà problemi; è vero che probabilmente lui legge solo questo pin, ma io a questo punto metterei un'interfaccia tra questo Vout ed il pin di Arduino.

Boh, non si sa che deve fare. Se legge solo la fotores. può bastargli così.

Ciao, grazie di tutti i consigli preziosi che mi avete dato.
Ma comunque il problema non l'ho risolto, poiche' non riesco a stabilire la resistenza relativa dell'LDR che mi serve per poter determinare la relazione da mettere nel codice. Leggendo in giro ho visto che la resistenza relativa si calcola facendo la media dei LUX che si vogliono misurare, cioe' io devo misurare l'irraggiamento del sole che va da 32000 lux a 100000 lux quindi faccio la somma e divido per 2 ottenendo cosi' 66000 Kohm/lux ( http://www.istitutopesenti.it/dipartimenti/elettronica/trasduttori%20fotoelettrici.pdf ) che poi inserendo nella formula del partitore mi permette di trovare solo i LUX.
Dove sto sbagliando?
Ho il dubbio che il sensore che sto usando non mi permette di apprezzare questa luminosita'. Oppure per poterla misurare con questo sensore devo fare un circuito di condizionamento?

Potresti fornire i valori in OHM che ottieni al buio, all'alba e a mezzogiorno?
Prendi il sensore da solo, collega ai suoi capi un multimetro impostato per le misure di resistenza e rileva questi 3 valori. In tal modo abbiamo due estremi e uno pseudo-centrale di riferimento, per simulare una scala di lettura; a quel punto si stabiliscono i possibili valori di w/mq per gli estremi della scala e si fa la conversione col software; una volta ottenuto un risultato decente si affinano le misurazioni ricorrendo al maggior numero di info possibili.
Ciao.

Allora al buio è 2 MOhm, all'alba 18 KOhm, invece a mezzogiorno è 70 Ohm.

wsnicky:
Allora al buio è 2 MOhm, all'alba 18 KOhm, invece a mezzogiorno è 70 Ohm.

Perfetto, quindi già vediamo che i valori che si ricavano dal datasheet sembrano completamente sballati, sempre che tu sia certo di aver letto 2 MOhm e NON 20 MOhm (sai, al buio :grin:).

Comunque se così è ora devi stabilire quanti lux arrivano al tuo sensore a mezzogiorno, se tu avessi un buon tester ci sarebbe anche il luxmetro, se non lo hai ti devi basare su dati che trovi sulla rete, o che conosci di tuo.

Ora la butto lì, a titolo di esempio; mettiamo che a 2 MOhm (al buio) siano 0 lux ed a 0 Ohm siano 100.000 lux (immaginiamo ipoteticamente che arrivi al cortocircuito alla massima intensità).

Se usi (rif. schemino di Leo) una pull-up (R2) tipica da 10KOhm con Vcc=5V, avrai sul pin Vout:
con 2 MOhm circa 0,02V
con 70 Ohm circa 4,96V
Questi valori li devi moltiplicare per 20.000 ed ottieni i lux, infatti:
0,02 * 20.000 = 400 lux
4,96 * 20000 = 99.200 lux
quindi li dividi per 683 (questo lo ricavo da ciò che hai scritto tu) ed ottieni i w/mq, infatti:
400 / 683 = 0,58 w/mq
99.200 / 683 = 145,24 w/mq
all'alba, col valore di 18KOhm ottieni circa 1,78 V quindi:
1,78 * 20000 = 35.600 lux / 683 = 52,12 w/mq
Se i conti ti tornano abbiamo finito altrimenti servono dati più èrecisi come riferimento.

Non è che legge 2 MOhm perché alcuni multimetri hanno il fondo scala a 2 MOhm per le resistenze? :slight_smile:
Se il datasheet dice che devono essere 20...

menniti:
[ ... ]
Questi valori li devi moltiplicare per 20.000 ed ottieni i lux, infatti:
[ ... ]
Se i conti ti tornano abbiamo finito altrimenti servono dati più èrecisi come riferimento.

I conti tornano! Se ho capito bene quel 20000 a moltiplicare i lux e' la Illuminated Resistence del datasheet della fotoresitenza?
Grazie.