remy 2 lat temu
rodzic
commit
22e15b3692

+ 2 - 2
EDA/PH_Salinity.kicad_prl

@@ -1,6 +1,6 @@
 {
   "board": {
-    "active_layer": 0,
+    "active_layer": 31,
     "active_layer_preset": "All Layers",
     "auto_track_width": true,
     "hidden_nets": [],
@@ -63,7 +63,7 @@
       36
     ],
     "visible_layers": "fffffff_ffffffff",
-    "zone_display_mode": 0
+    "zone_display_mode": 1
   },
   "meta": {
     "filename": "PH_Salinity.kicad_prl",

+ 596 - 596
EDA/fp-info-cache

@@ -1,596 +1,596 @@
-144631067665744
-Bornier
-Bornier2.54_1x2
-
-
-0
-2
-2
-Bornier
-Bornier2.54_1x3
-
-
-0
-3
-3
-Bornier
-Bornier2.54_1x4
-
-
-0
-4
-4
-Bornier
-Bornier2.54_1x6
-
-
-0
-6
-6
-Bornier
-Bornier5.08_1X4
-
-
-0
-4
-4
-Bornier
-Bornier5_1x2
-
-
-0
-2
-2
-Bornier
-Bornier5_1x3
-Terminal block 3 pins
-DEV
-0
-3
-3
-C
-0603
-
-
-0
-2
-2
-C
-0805
-
-
-0
-2
-2
-C
-1206
-
-
-0
-2
-2
-C
-2312_P
-
-
-0
-2
-2
-C
-3216-18
-
-
-0
-2
-2
-C
-CP_CMS4X5.8
-
-
-0
-2
-2
-C
-CP_CMS5X5.8
-
-
-0
-2
-2
-Connector
-BNC
-
-
-0
-5
-2
-Connector
-CR1220
-
-
-0
-2
-2
-Connector
-DC_Jack
-
-
-0
-3
-2
-Connector
-LEDPCB
-
-
-0
-5
-5
-Connector
-LEDPCB2
-
-
-0
-5
-5
-Connector
-Micro-USB
-
-
-0
-9
-6
-Connector
-U.FL-R-SMT
-
-
-0
-3
-1
-Connector_Phoenix_MSTBO
-PCBEdge_1x1_6x3mm
-
-
-0
-2
-1
-Connector_Phoenix_MSTBO
-PCBEdge_1x4_7.6x1.5mm_p1.9mm_2pins
-
-
-0
-8
-2
-Connector_Phoenix_MSTBO
-PCBEdge_1x10_5.7x2.21mm_p3.81mm
-
-
-0
-20
-10
-Connector_Phoenix_MSTBO
-PhoenixContact_MSTBO_2,5_4-G1L_1x4_p5.00mm
-MSTBO 2,5 G1L 1x4 p5.00mm
-Connector Phoenix Contact MSTBO G1L
-0
-4
-4
-Connector_Phoenix_MSTBO
-PhoenixContact_MSTBO_2,5_4-G1R_1x4_p5.00mm
-MSTBO 2,5 G1R 1x4 p5.00mm
-Connector Phoenix Contact MSTBO G1R
-0
-4
-4
-D
-SMA
-
-
-0
-2
-2
-D
-SOD-123
-
-
-0
-2
-2
-D
-SOD-523
-
-
-0
-2
-2
-Jumper
-Jumper3X250V
-
-
-0
-3
-3
-Jumper
-SolderStrap2.5mm
-
-
-0
-2
-2
-Jumper
-SolderStrap0603
-
-
-0
-2
-2
-L
-0805
-
-
-0
-2
-2
-LED
-7segment_3
-
-
-0
-12
-12
-LED
-0805
-
-
-0
-2
-2
-LED
-COB5730
-
-
-0
-3
-2
-LED
-Osram
-
-
-0
-3
-2
-Logo
-R
-
-
-0
-0
-0
-MH
-MH2mm
-module Non Plated Through Hole
-DEV
-0
-0
-0
-MH
-MH2mm8
-module Non Plated Through Hole
-DEV
-0
-0
-0
-MH
-MH2mm69
-
-
-0
-0
-0
-MH
-MH3mm
-module Non Plated Through Hole
-DEV
-0
-0
-0
-MH
-MH3mm5
-module Non Plated Through Hole
-DEV
-0
-0
-0
-MH
-MH4.8
-
-
-0
-0
-0
-MH
-MH4mm
-
-
-0
-0
-0
-MH
-MH_5mm
-
-
-0
-0
-0
-Module
-ESP-12F
-
-
-0
-22
-22
-Module
-NEO-7
-
-
-0
-24
-24
-PinHeader
-JST_2.54_4
-
-
-0
-4
-4
-PinHeader
-JST_2.54_4_coude
-
-
-0
-4
-4
-PinHeader
-PinHeader2.54_1X2
-
-
-0
-2
-2
-PinHeader
-PinHeader2.54_1X3
-
-
-0
-3
-3
-PinHeader
-PinHeader2.54_1X5
-
-
-0
-5
-5
-PinHeader
-PinHeader2.54_1X6
-
-
-0
-6
-6
-PinHeader
-PinHeader2.54_1X16
-
-
-0
-16
-16
-R
-0603
-
-
-0
-2
-2
-R
-0805
-
-
-0
-2
-2
-R
-1206
-
-
-0
-2
-2
-R
-1210
-
-
-0
-2
-2
-R
-1218
-
-
-0
-2
-2
-R
-3296
-
-
-0
-3
-3
-R
-5329
-
-
-0
-2
-2
-R
-RM065
-
-
-0
-3
-3
-R
-ciment
-
-
-0
-2
-2
-R
-ciment_SMD
-
-
-0
-2
-2
-SW
-4.5mmX4.5mm
-
-
-0
-4
-2
-SW
-1812
-
-
-0
-2
-2
-SW
-MT-008a
-
-
-0
-6
-6
-SW
-SK12D07VG4
-
-
-0
-5
-3
-U
-DIP8
-
-
-0
-8
-8
-U
-LQFP48
-
-
-0
-48
-48
-U
-LQFP64
-
-
-0
-64
-64
-U
-PDIP16
-
-
-0
-16
-16
-U
-SO8N
-
-
-0
-8
-8
-U
-SO16S
-
-
-0
-16
-16
-U
-SO18W
-
-
-0
-18
-18
-U
-SOT-223
-
-
-0
-4
-3
-U
-SOT23-3
-
-
-0
-3
-3
-U
-SOT23-5
-
-
-0
-5
-5
-U
-SOT23-6
-
-
-0
-6
-6
-U
-TO-252
-
-
-0
-3
-3
-U
-TSOT23-5L
-
-
-0
-5
-5
-Y
-5032
-
-
-0
-2
-2
-relay
-G6K-2F
-
-
-0
-8
-8
-relay
-SRD-XXVDC-SL-C
-
-
-0
-5
-5
+144631067665744
+Bornier
+Bornier2.54_1x2
+
+
+0
+2
+2
+Bornier
+Bornier2.54_1x3
+
+
+0
+3
+3
+Bornier
+Bornier2.54_1x4
+
+
+0
+4
+4
+Bornier
+Bornier2.54_1x6
+
+
+0
+6
+6
+Bornier
+Bornier5.08_1X4
+
+
+0
+4
+4
+Bornier
+Bornier5_1x2
+
+
+0
+2
+2
+Bornier
+Bornier5_1x3
+Terminal block 3 pins
+DEV
+0
+3
+3
+C
+0603
+
+
+0
+2
+2
+C
+0805
+
+
+0
+2
+2
+C
+1206
+
+
+0
+2
+2
+C
+2312_P
+
+
+0
+2
+2
+C
+3216-18
+
+
+0
+2
+2
+C
+CP_CMS4X5.8
+
+
+0
+2
+2
+C
+CP_CMS5X5.8
+
+
+0
+2
+2
+Connector
+BNC
+
+
+0
+5
+2
+Connector
+CR1220
+
+
+0
+2
+2
+Connector
+DC_Jack
+
+
+0
+3
+2
+Connector
+LEDPCB
+
+
+0
+5
+5
+Connector
+LEDPCB2
+
+
+0
+5
+5
+Connector
+Micro-USB
+
+
+0
+9
+6
+Connector
+U.FL-R-SMT
+
+
+0
+3
+1
+Connector_Phoenix_MSTBO
+PCBEdge_1x1_6x3mm
+
+
+0
+2
+1
+Connector_Phoenix_MSTBO
+PCBEdge_1x4_7.6x1.5mm_p1.9mm_2pins
+
+
+0
+8
+2
+Connector_Phoenix_MSTBO
+PCBEdge_1x10_5.7x2.21mm_p3.81mm
+
+
+0
+20
+10
+Connector_Phoenix_MSTBO
+PhoenixContact_MSTBO_2,5_4-G1L_1x4_p5.00mm
+MSTBO 2,5 G1L 1x4 p5.00mm
+Connector Phoenix Contact MSTBO G1L
+0
+4
+4
+Connector_Phoenix_MSTBO
+PhoenixContact_MSTBO_2,5_4-G1R_1x4_p5.00mm
+MSTBO 2,5 G1R 1x4 p5.00mm
+Connector Phoenix Contact MSTBO G1R
+0
+4
+4
+D
+SMA
+
+
+0
+2
+2
+D
+SOD-123
+
+
+0
+2
+2
+D
+SOD-523
+
+
+0
+2
+2
+Jumper
+Jumper3X250V
+
+
+0
+3
+3
+Jumper
+SolderStrap2.5mm
+
+
+0
+2
+2
+Jumper
+SolderStrap0603
+
+
+0
+2
+2
+L
+0805
+
+
+0
+2
+2
+LED
+7segment_3
+
+
+0
+12
+12
+LED
+0805
+
+
+0
+2
+2
+LED
+COB5730
+
+
+0
+3
+2
+LED
+Osram
+
+
+0
+3
+2
+Logo
+R
+
+
+0
+0
+0
+MH
+MH2mm
+module Non Plated Through Hole
+DEV
+0
+0
+0
+MH
+MH2mm8
+module Non Plated Through Hole
+DEV
+0
+0
+0
+MH
+MH2mm69
+
+
+0
+0
+0
+MH
+MH3mm
+module Non Plated Through Hole
+DEV
+0
+0
+0
+MH
+MH3mm5
+module Non Plated Through Hole
+DEV
+0
+0
+0
+MH
+MH4.8
+
+
+0
+0
+0
+MH
+MH4mm
+
+
+0
+0
+0
+MH
+MH_5mm
+
+
+0
+0
+0
+Module
+ESP-12F
+
+
+0
+22
+22
+Module
+NEO-7
+
+
+0
+24
+24
+PinHeader
+JST_2.54_4
+
+
+0
+4
+4
+PinHeader
+JST_2.54_4_coude
+
+
+0
+4
+4
+PinHeader
+PinHeader2.54_1X2
+
+
+0
+2
+2
+PinHeader
+PinHeader2.54_1X3
+
+
+0
+3
+3
+PinHeader
+PinHeader2.54_1X5
+
+
+0
+5
+5
+PinHeader
+PinHeader2.54_1X6
+
+
+0
+6
+6
+PinHeader
+PinHeader2.54_1X16
+
+
+0
+16
+16
+R
+0603
+
+
+0
+2
+2
+R
+0805
+
+
+0
+2
+2
+R
+1206
+
+
+0
+2
+2
+R
+1210
+
+
+0
+2
+2
+R
+1218
+
+
+0
+2
+2
+R
+3296
+
+
+0
+3
+3
+R
+5329
+
+
+0
+2
+2
+R
+RM065
+
+
+0
+3
+3
+R
+ciment
+
+
+0
+2
+2
+R
+ciment_SMD
+
+
+0
+2
+2
+SW
+4.5mmX4.5mm
+
+
+0
+4
+2
+SW
+1812
+
+
+0
+2
+2
+SW
+MT-008a
+
+
+0
+6
+6
+SW
+SK12D07VG4
+
+
+0
+5
+3
+U
+DIP8
+
+
+0
+8
+8
+U
+LQFP48
+
+
+0
+48
+48
+U
+LQFP64
+
+
+0
+64
+64
+U
+PDIP16
+
+
+0
+16
+16
+U
+SO8N
+
+
+0
+8
+8
+U
+SO16S
+
+
+0
+16
+16
+U
+SO18W
+
+
+0
+18
+18
+U
+SOT-223
+
+
+0
+4
+3
+U
+SOT23-3
+
+
+0
+3
+3
+U
+SOT23-5
+
+
+0
+5
+5
+U
+SOT23-6
+
+
+0
+6
+6
+U
+TO-252
+
+
+0
+3
+3
+U
+TSOT23-5L
+
+
+0
+5
+5
+Y
+5032
+
+
+0
+2
+2
+relay
+G6K-2F
+
+
+0
+8
+8
+relay
+SRD-XXVDC-SL-C
+
+
+0
+5
+5

+ 0 - 56
Soft/Lecture/Lecture.ino

@@ -1,56 +0,0 @@
-#include <Wire.h>
-
-#define MCP3428_ADDRESS 0x68 // Adresse I2C du MCP3428
-#define VREF 3.3 // Tension de référence en volts
-
-void setup() {
-  Wire.begin();
-  Serial.begin(9600);
-  
-  // Configuration du MCP3428
-  Wire.beginTransmission(MCP3428_ADDRESS);
-  Wire.write(0x10); // Configurer en mode continu, 16 bits de résolution
-  byte result = Wire.endTransmission();
-  
-  if (result != 0) {
-    Serial.println("Erreur lors de la configuration du MCP3428");
-    while (1); // Arrêt du programme en cas d'erreur
-  }
-}
-
-void loop() {
-  // Lecture des données des 4 canaux
-  for (int i = 0; i < 4; i++) {
-    Wire.beginTransmission(MCP3428_ADDRESS);
-    Wire.write(0x80 | (i << 5)); // Sélectionner le canal et lancer une conversion
-    byte result = Wire.endTransmission();
-    
-    if (result != 0) {
-      Serial.print("Erreur lors de la lecture du canal ");
-      Serial.println(i + 1);
-      continue; // Passer au canal suivant en cas d'erreur
-    }
-
-    delay(100); // Attendre la fin de la conversion (ajustez cette valeur en fonction de la vitesse de conversion configurée)
-
-    Wire.requestFrom(MCP3428_ADDRESS, 3); // Lecture des 3 octets de données
-    byte config = Wire.read();
-    byte byte2 = Wire.read();
-    byte byte1 = Wire.read();
-
-    int value = ((byte2 & 0x0F) << 8) | byte1; // Calcul de la valeur analogique
-
-    // Conversion en tension
-    float voltage = (value * VREF) / 32767.0;
-
-    Serial.print("Canal ");
-    Serial.print(i + 1);
-    Serial.print(": ");
-    Serial.print(value);
-    Serial.print(" (");
-    Serial.print(voltage, 4);
-    Serial.println(" V)");
-  }
-
-  delay(1000); // Attendre 1 seconde avant de lire à nouveau les données
-}

+ 39 - 0
Soft/MCP3428/MCP3428.c

@@ -0,0 +1,39 @@
+#include "MCP3428.h"
+
+byte getChannelConfigByte(int channel) {
+  byte configByte = 0x88; // Configuration par défaut pour le canal 0
+
+  if (channel == 1) {
+    configByte = 0xA8;
+  } else if (channel == 2) {
+    configByte = 0xC8;
+  } else if (channel == 3) {
+    configByte = 0xE8;
+  }
+
+  return configByte;
+}
+
+float lecture(uint8_t channel) {
+       
+    Wire.beginTransmission(MCP3428_ADDRESS);
+    Wire.write(getChannelConfigByte(channel));
+    Wire.endTransmission();
+    
+    delay(200);
+  byte config,byte1,byte2;
+    while(1){
+        Wire.requestFrom(MCP3428_ADDRESS, 3);
+        byte2 = Wire.read();
+        byte1 = Wire.read();
+        config = Wire.read();
+        if(config>>8==0) //tant qu'il a pas fini
+            break;
+    }
+
+    int value = ((byte2) << 8) | byte1;
+    // Conversion en tension
+    return value * VREF;
+}
+
+

+ 8 - 0
Soft/MCP3428/MCP3428.h

@@ -0,0 +1,8 @@
+#include <Wire.h>
+
+#define MCP3428_ADDRESS 0x68 // Adresse I2C du MCP3428
+#define VREF 62.5 / 1000000// Tension de référence en volt
+
+byte getChannelConfigByte(int channel);
+
+float lecture(uint8_t channel);

+ 0 - 66
Soft/PH.ino

@@ -1,66 +0,0 @@
-/*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 <Wire.h>
-
-const int I2C_ADDR = 0x45;  // Adresse I2C du périphérique
-const float X1 = 6.86;     // Valeur de référence 1
-const float X2 = 9.18;     // Valeur de référence 2
-
-float Y1, Y2;              // Variables pour stocker les valeurs mesurées
-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)
-}
-
-void loop() {
-  // Afficher le message et attendre une entrée de l'utilisateur
-  Serial.println("Mettre la sonde dans la solution 6.86");
-  while (!Serial.available()) {
-    // Attendre tant qu'aucune entrée n'est reçue
-  }
-  Serial.read();  // Lire et ignorer l'entrée
-
-  // Récupérer la valeur en I2C
-  Wire.requestFrom(I2C_ADDR, sizeof(float));
-  while (Wire.available() < sizeof(float)) {
-    // Attendre tant que les données ne sont pas disponibles
-  }
-  Wire.readBytes((char*)&Y1, sizeof(float));
-
-  // Afficher le message et attendre une entrée de l'utilisateur
-  Serial.println("Mettre la sonde dans la solution 9.18");
-  while (!Serial.available()) {
-    // Attendre tant qu'aucune entrée n'est reçue
-  }
-  Serial.read();  // Lire et ignorer l'entrée
-
-  // Récupérer la valeur en I2C
-  Wire.requestFrom(I2C_ADDR, sizeof(float));
-  while (Wire.available() < sizeof(float)) {
-    // Attendre tant que les données ne sont pas disponibles
-  }
-  Wire.readBytes((char*)&Y2, sizeof(float));
-
-  // Calculer les coefficients de la droite
-  a = (Y2 - Y1) / (X2 - X1);
-  b = Y1 - a * X1;
-
-  // Afficher les coefficients
-  Serial.print("Droite : y = ");
-  Serial.print(a, 6);
-  Serial.print("x + ");
-  Serial.println(b, 6);
-
-  // Attendre un certain délai avant la prochaine itération
-  delay(1000);
-}

+ 39 - 0
Soft/PH/MCP3428.c

@@ -0,0 +1,39 @@
+#include "MCP3428.h"
+
+byte getChannelConfigByte(int channel) {
+  byte configByte = 0x88; // Configuration par défaut pour le canal 0
+
+  if (channel == 1) {
+    configByte = 0xA8;
+  } else if (channel == 2) {
+    configByte = 0xC8;
+  } else if (channel == 3) {
+    configByte = 0xE8;
+  }
+
+  return configByte;
+}
+
+float lecture(uint8_t channel) {
+       
+    Wire.beginTransmission(MCP3428_ADDRESS);
+    Wire.write(getChannelConfigByte(channel));
+    Wire.endTransmission();
+    
+    delay(200);
+  byte config,byte1,byte2;
+    while(1){
+        Wire.requestFrom(MCP3428_ADDRESS, 3);
+        byte2 = Wire.read();
+        byte1 = Wire.read();
+        config = Wire.read();
+        if(config>>8==0) //tant qu'il a pas fini
+            break;
+    }
+
+    int value = ((byte2) << 8) | byte1;
+    // Conversion en tension
+    return value * VREF;
+}
+
+

+ 8 - 0
Soft/PH/MCP3428.h

@@ -0,0 +1,8 @@
+#include <Wire.h>
+
+#define MCP3428_ADDRESS 0x68 // Adresse I2C du MCP3428
+#define VREF 62.5 / 1000000// Tension de référence en volt
+
+byte getChannelConfigByte(int channel);
+
+float lecture(uint8_t channel);

+ 102 - 0
Soft/PH/PH.ino

@@ -0,0 +1,102 @@
+/*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);
+    
+    
+    
+}