| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /*programe arduino qui :
- affiche "mettre la sonde dans la solution 6.86"
- qui attend un entrée de l'utilisateur,
- récupere une valeur en I2C adress 0x45 stocker dans une variable Y1
- affiche "mettre la sonde dans la solution 9.18"
- qui attend un entrée de l'utilisateur,
- récupere une valeur en I2C adress 0x45 stocker dans une variable Y2
- calcul la droite d'equation de la courbe avec X1 = 6.86 X2 = 9.18 et les variable Y1 et Y2*/
- #include "MCP3428.h"
- float a, b; // Coefficients de la droite
- void setup() {
- Serial.begin(9600); // Initialisation de la communication série
- Wire.begin(); // Initialisation de la bibliothèque Wire (I2C)
- Calibration();
- }
- /*
- fonction arduino calibration qui :
- demande a l'utilisateur Mettre la sonde dans la solution 4.01 vient lire grace a la fonction lecture(0) une Ref et avec lecture(1) - Ref = Y0
- demande a l'utilisateur Mettre la sonde dans la solution 6.86 vient lire grace a la fonction lecture(0) une Ref et avec lecture(1) - Ref = Y1
- demande a l'utilisateur Mettre la sonde dans la solution 9.18 vient lire grace a la fonction lecture(0) une Ref et avec lecture(1) - Ref = Y2
-
- et calcul la droite de la courbe avec Y0,Y1,Y2 et X0=4.01, X1=6.86, X2=9.18
-
- */
- void Calibration() {
- float X0 = 4.01; // Solution 4.01
- float X1 = 6.86; // Solution 6.86
- float X2 = 9.18; // Solution 9.18
- float Y0, Y1, Y2;
- float Ref;
- // Étape 1: Mettre la sonde dans la solution 4.01
- Serial.println("Mettez la sonde dans la solution 4.01");
- Serial.println("Appuyez sur une touche pour continuer...");
- while (!Serial.available()) {
- // Attente de l'entrée utilisateur
- }
- Serial.read(); // Lecture de l'entrée utilisateur pour la vider
- // Lecture de la référence
- Ref = lecture(0);
- Y0 = lecture(1) - Ref;
- // Étape 2: Mettre la sonde dans la solution 6.86
- Serial.println("Mettez la sonde dans la solution 6.86");
- Serial.println("Appuyez sur une touche pour continuer...");
- while (!Serial.available()) {
- // Attente de l'entrée utilisateur
- }
- Serial.read(); // Lecture de l'entrée utilisateur pour la vider
- // Lecture de la référence
- Ref = lecture(0);
- Y1 = lecture(1) - Ref;
- // Étape 3: Mettre la sonde dans la solution 9.18
- Serial.println("Mettez la sonde dans la solution 9.18");
- Serial.println("Appuyez sur une touche pour continuer...");
- while (!Serial.available()) {
- // Attente de l'entrée utilisateur
- }
- Serial.read(); // Lecture de l'entrée utilisateur pour la vider
- // Lecture de la référence
- Ref = lecture(0);
- Y2 = lecture(1) - Ref;
- // Calcul des coefficients de la droite de la courbe
- float denominator = (X1 - X0) * (X2 - X0) * (X2 - X1);
- a = ((Y2 - Y0) * (X1 - X0) - (Y1 - Y0) * (X2 - X0)) / denominator;
- b = (Y1 - Y0 - a * (X1 - X0)) / (X1 - X0);
-
- Serial.print("a : ");
- Serial.print(a);
- Serial.print("b : ");
- Serial.println(b);
- }
- void loop(){
-
-
- float Ref = lecture(0);
- float VPh = lecture(1)-Ref;
-
- float PH =(VPh-b) /a;
-
- Serial.print("Vph : ");
- Serial.print(VPh, 6);
- Serial.print(" PH : ");
- Serial.println(PH);
-
-
-
- }
|