Comment vérifier la tension de référence et la résolution

Bonjour à tous,

Je mesure le rayonement solaire avec un pyrranomètre.
Il est alimenté en 3.3V et le fils signal est connecté sur A0.

Dans mon code j’ai ajouté ceci

analogReadResolution(12);
analogReference(AR_DEFAULT);

Pour prendre la mesure je fais ceci

#Je lis deux fois pour rien, meme si ne fois pourrait etre suffisant
float f_sunValue = analogRead(pin_readSun); 
f_sunValue = analogRead(pin_readSun);
delay(10);
f_sunValue = 0;
#je fais une moyenne
for (int o = 0; o < 20; o++) {
    f_sunValue += analogRead(pin_readSun);
    Serial.print(o); Serial.print(F(". ")); Serial.println(f_sunValue);
    delay(10);
  }
  f_sunValue = f_sunValue / 20;

Ce qui m’affiche 1025.

Puis pour calculer le rayonnement solaire, je dois connaitre la tension mesurée sur A0 car le pyranomètre mesure 1W/m2 chaque 1.67mV

3.3/4096*1025 = 0.825V

Je convertie en mV

0.825 * 1000 = 825mV

puis je connais la valeur en w/m2

825*1.67=1379W/m2

Le problème est impossible en hver et la valeur est beaucoup trop élevée. Si je compare avec des données météologiques locales, la valeur devrait se trouver vers 492W/m2, en cette période (avec le soleil)

Si e fais mon calcul à l’inverse en partant d’un W/m2 connu, la valeur sur A0 devrait être proche 367

J’aimeria donc vérifier certain point dan mon code.

Comment vérifier la tension de référence? Est-elle vraiment de 3.3V?

Il y a ici une autre mnaière de faire que j’aimerais essayé, si ca vaut la peine

pinMode(SOLAR, INPUT);
pinMode(REF_3V3, INPUT);
analogReference(EXTERNAL);

Actuellement, mon circuit à un jumper (qui est ouvert) qui me permet de connecter href sur la broche 3V.
Mais ci-dessus, il se réfère à la broche A0 (et lui prend la mesure sur A1)

pinMode(REF_3V3, INPUT);

Mais dans ce cas, la broche A0 doit être flottante? Connectée à rien?

Si non, comment pourriez-vous expliqué une valeur aussi haute, sur A0?

Merci pour vos lumières

Bonjour

Si tu commençais par dire quelle carte , donc quel microcontrolleur tu utilises pour cette réalisation ?

Pour continuer dans les "si" et si tu fais la mesure avec un "vrai" voltmètre qu'est-ce que cela donnes ?
Avant d'incriminer le micro ou le code il faut s'assurer que le matériel est conforme à ses spécifications et que les spécifications sont adaptées au projet.

Tu ne donnes pas la référence du pyranomètre.

Vous êtes sûr que ce n'est pas:

analogReadResolution(14);

Bonjour,

Si tu commençais par dire quelle carte , donc quel microcontrolleur tu utilises pour cette réalisation ?

Alors c'est a SAMD21. L'équivalent du Arduino Zero.

... ça a son importance :wink:

Alors, 24 et je baisse mon froc :slight_smile:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.