• Réalisation des mesures en lumière ambiante.
    Actualisation du "zéro" en saisissant le chiffre 0 dans la barre du moniteur série.
    Affichage de la valeur de l'absorbance chaque seconde.


    int PinLED = 8; // Numéro du pin Alimentation de la LED
    int PinPhotoDiode = A0; // Numéro du pin signal photodiode

    float Son; // Signal proportionnel à l'intensité reçue LED allumée
    float Soff; // Signal proportionnel à l'intensité reçue LED éteinte (fond parasite)
    int Tstab = 10; // temps d'attente pour stabilisation de la LED entre état allumé et eteint
    float Smesure; // Smesure= Son-Soff pour s'affranchir du fond parasite

    float S0 = 500.0; // Signal blanc, valeur intiale arbitraire
    float alpha = 0.05; // pour calculer la moyenne exponentielle
    float A; // Absorbance=-log10(Smesure/S0)

    int TempsEntreAffichage = 1000;
    float TempsAffichageSuivant;

    //--------------------------------------------------------------------------------------------
    void setup() {
       Serial.begin(9600); // Communication avec le moniteur série
       pinMode(PinLED, OUTPUT); // Définition pin connecté à la LED
       pinMode(PinPhotoDiode, INPUT); // Définition pin connecté à la photodiode

       TempsAffichageSuivant = millis() + TempsEntreAffichage;
    }
    //--------------------------------------------------------------------------------------------
    void loop() {

       digitalWrite(PinLED, HIGH); delay(Tstab); //---------- LED allumée -------------
       Son = analogRead(PinPhotoDiode);

       digitalWrite(PinLED, LOW); delay(Tstab); //---------- LED éteinte -------------
       Soff = analogRead(PinPhotoDiode);

       Smesure = alpha * (Son-Soff) + (1 - alpha) * Smesure;

       if (millis() > TempsAffichageSuivant) { // Test pour affichage et frappe clavier
          Serial.print(Son);Serial.print(" ");
          Serial.print(Soff);Serial.print(" > Abs = ");
          Serial.println(log10(S0 / Smesure), 3); // Affiche l'absorbance

          if (Serial.available()) { // Teste si un caractère arrive du terminal
             if (String(Serial.readString()) == "0") { //teste si le caractère est 0
                Serial.println("Mémorisation de la valeur de S0 ");
                S0 = Smesure;
             } // fin de stockageS0
          } // fin du test arrivée d'un caractère
          TempsAffichageSuivant = TempsAffichageSuivant + TempsEntreAffichage;
       } // fin test Affichage
    }

     

     Fichier Arduino à télécharger


My interface

Couleur de fond Couleur de fond

Couleur de texte Couleur de texte

Police Police

Crénage de la police Crénage de la police

Taille de police Taille de police

1

Visibilité de l’image Visibilité de l’image

Espacement des lettres Espacement des lettres

0

Hauteur de ligne Hauteur de ligne

1.2

Surbrillance de lien Surbrillance de lien

Largeur de paragraphe Largeur de paragraphe

0

Alignement du texte Alignement du texte