remy 1 год назад
Родитель
Сommit
2c97e7b8d0

BIN
EDA/PH_Salinity-backups/PH_Salinity-2024-07-03_134851.zip → EDA/PH_Salinity-backups/PH_Salinity-2024-08-12_161000.zip


BIN
EDA/PH_Salinity-backups/PH_Salinity-2024-07-02_123250.zip → EDA/PH_Salinity-backups/PH_Salinity-2024-12-11_102421.zip


+ 0 - 1
EDA/PH_Salinity.kicad_prl

@@ -38,7 +38,6 @@
       8,
       9,
       10,
-      11,
       12,
       13,
       14,

+ 48 - 0
Soft/ADS8345/ADS8345.c

@@ -0,0 +1,48 @@
+
+NE Fonctionne pas (a vérifier pour la lecture)
+
+float lireADS8345(uint8_t channel) {
+	// Préparer les données pour la commande de lecture
+	uint8_t commandHigh = 0xC0 | ((channel & 0x07) << 3);
+
+	digitalWrite(CS_PIN, LOW); // Activer le CS
+
+ switch(channel){
+   case 0:
+    SPI.transfer(0b10000111); // Envoyer la première partie de la commande 
+    break;
+  case 1:
+    SPI.transfer(0b11000111); // Envoyer la première partie de la commande 
+    break;
+  case 2:
+    SPI.transfer(0b10010111); // Envoyer la première partie de la commande 
+    break;
+  case 3:
+    SPI.transfer(0b11010111); // Envoyer la première partie de la commande 
+    break;
+  case 4:
+    SPI.transfer(0b10100111); // Envoyer la première partie de la commande 
+    break;
+  case 5:
+    SPI.transfer(0b11100111); // Envoyer la première partie de la commande 
+    break;
+  case 6:
+    SPI.transfer(0b10110111); // Envoyer la première partie de la commande 
+    break;
+  case 7:
+    SPI.transfer(0b11110111); // Envoyer la première partie de la commande 
+    break;
+ }
+	delay(10); // Attendre un peu pour la stabilisation du signal
+	uint8_t resultHigh = SPI.transfer(0x00); // Lire la première partie du résultat
+	uint8_t resultLow = SPI.transfer(0x00); // Lire la seconde partie du résultat
+
+	digitalWrite(CS_PIN, HIGH); // Désactiver le CS
+
+	// Combiner les parties haute et basse du résultat
+	uint16_t  valeur = (resultHigh << 8) | resultLow;
+
+ 	float tension = ((valeur&0x3FFF)/16384.0)*VREF;
+
+	return tension;
+}

+ 0 - 0
Soft/ADS8345/ADS8345.h


+ 14 - 1
Soft/MCP3428/MCP3428.c

@@ -1,5 +1,19 @@
 #include "MCP3428.h"
 
+byte getChannelConfigByte(int channel) {
+  byte configByte = 0x88; // Configuration par défaut pour le canal 1
+
+  if (channel == 1) {
+    configByte = 0xA8;
+  } else if (channel == 2) {
+    configByte = 0xC8;
+  } else if (channel == 3) {
+    configByte = 0xE8;
+  }
+
+  return configByte;
+}
+
 float MCP3428_Read(uint8_t channel) {
        
     Wire.beginTransmission(MCP3428_ADDRESS);
@@ -18,6 +32,5 @@ float MCP3428_Read(uint8_t channel) {
     }
 
     int value = ((byte2) << 8) | byte1;
-    Serial.print(value);
     return ((float)value * 62.5)/1000000;
 }

+ 3 - 1
Soft/MCP3428/MCP3428.h

@@ -3,4 +3,6 @@
 #define MCP3428_ADDRESS 0x68 // Adresse I2C du MCP3428
 #define VREFMCP 0.0000625// Tension de référence en volt
 
-float MCP3428_Read(uint8_t channel);
+byte getChannelConfigByte(int channel);
+float MCP3428_Read(uint8_t channel);
+

BIN
Soft/test/Classeur1.xlsx


+ 0 - 154
Soft/test/test.ino

@@ -1,154 +0,0 @@
-#include <SPI.h>
-#include <Wire.h>
-
-#define MCP3428_ADDRESS 0x68 // Adresse I2C du MCP3428
-#define VREFMCP 0.0000625// Tension de référence en volt
-
-// Définir les broches
-const int CS_PIN = 53;
-const float VREF = 1.36; // Référence de tension
-
-//0.253
-//ref1 = 0.507
-
-//Vref=0.589
-
-// Initialisation
-void setup() {
-	Serial.begin(9600);
-	SPI.begin();
-	pinMode(CS_PIN, OUTPUT);
-	digitalWrite(CS_PIN, HIGH); // Désactive le CS au démarrage
-
-	Serial.println(" initialisé et prêt à tester.");
-}
-
-byte getChannelConfigByte(int channel) {
-  byte configByte = 0x88; // Configuration par défaut pour le canal 1
-
-  if (channel == 1) {
-    configByte = 0xA8;
-  } else if (channel == 2) {
-    configByte = 0xC8;
-  } else if (channel == 3) {
-    configByte = 0xE8;
-  }
-
-  return configByte;
-}
-
-float MCP3428_Read(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;
-    Serial.print(value);
-    return ((float)value * 62.5)/1000000;
-}
-
-float lireADS8345(uint8_t channel) {
-	// Préparer les données pour la commande de lecture
-	uint8_t commandHigh = 0xC0 | ((channel & 0x07) << 3);
-
-	digitalWrite(CS_PIN, LOW); // Activer le CS
-
- switch(channel){
-   case 0:
-    SPI.transfer(0b10000111); // Envoyer la première partie de la commande 
-    break;
-  case 1:
-    SPI.transfer(0b11000111); // Envoyer la première partie de la commande 
-    break;
-  case 2:
-    SPI.transfer(0b10010111); // Envoyer la première partie de la commande 
-    break;
-  case 3:
-    SPI.transfer(0b11010111); // Envoyer la première partie de la commande 
-    break;
-  case 4:
-    SPI.transfer(0b10100111); // Envoyer la première partie de la commande 
-    break;
-  case 5:
-    SPI.transfer(0b11100111); // Envoyer la première partie de la commande 
-    break;
-  case 6:
-    SPI.transfer(0b10110111); // Envoyer la première partie de la commande 
-    break;
-  case 7:
-    SPI.transfer(0b11110111); // Envoyer la première partie de la commande 
-    break;
- }
-	delay(10); // Attendre un peu pour la stabilisation du signal
-	uint8_t resultHigh = SPI.transfer(0x00); // Lire la première partie du résultat
-	uint8_t resultLow = SPI.transfer(0x00); // Lire la seconde partie du résultat
-
-	digitalWrite(CS_PIN, HIGH); // Désactiver le CS
-
-	// Combiner les parties haute et basse du résultat
-	uint16_t  valeur = (resultHigh << 8) | resultLow;
-
- 	float tension = ((valeur&0x3FFF)/16384.0)*VREF;
-
-
-
-	return tension;
-}
-
-void loop() {
-  int i = 0;
-  //for (i =0; i<4;i++){
-    /*float tension = lireADS8345(i);
-    //Serial.print(i);
-    Serial.print(" Tension: ");
-    Serial.print(tension, 3); // Affiche la tension avec 3 décimales
-    Serial.print(" V     ");
-    */
-
-    float tension = lecture(i);
-    Serial.print("     ");
-    Serial.print(i);
-    Serial.print(" Tension: ");
-    Serial.print(tension, 10); // Affiche la tension avec 3 décimales
-    Serial.println(" V");
-
-    delay(1000); // Attendre 1 seconde avant la prochaine lecture
-
-  //}
-}
-
-/*
-  salé 9760
-
-*/
-/*
-OUT1 
-REF1 FIX
-OUT2 FIX
-V+
-V-
-OUT3
-V+_OUT
-V-_OUT
-
-0 Tension: 0.438 V 
-1 Tension: 0.506 V 
-2 Tension: 0.291 V
-3 Tension: 0.329 V
-4 Tension: 0.343 V
-5 Tension: 0.348 V
-6 Tension: 0.296 V
-7 Tension: 0.164 V
-*/

+ 72 - 0
Soft/testPH/testPH.ino

@@ -0,0 +1,72 @@
+#include <Wire.h>
+//#include "../MCP3428/MCP3428.h"
+
+#define MCP3428_ADDRESS 0x68 // Adresse I2C du MCP3428
+#define VREFMCP 0.0000625// Tension de référence en volt
+
+// Initialisation
+void setup() {
+	Serial.begin(9600);
+  Wire.begin();
+
+  Wire.requestFrom(MCP3428_ADDRESS, (uint8_t)1);
+  if (!Wire.available()) {
+    Serial.print("No device found at address ");
+    while (1)
+      ;
+  }
+}
+
+void loop() {
+  int i = 0;
+  //for (i =0; i<4;i++){
+
+    
+
+    float tension = MCP3428_Read(i);
+    Serial.print("     ");
+    Serial.print(i);
+    Serial.print(" Tension: ");
+    Serial.print(tension, 6); // Affiche la tension avec 3 décimales
+    Serial.println(" V");
+
+    delay(10000); // Attendre 1 seconde avant la prochaine lecture
+
+
+}
+
+
+byte getChannelConfigByte(int channel) {
+  byte configByte = 0x88; // Configuration par défaut pour le canal 1
+
+  if (channel == 1) {
+    configByte = 0xA8;
+  } else if (channel == 2) {
+    configByte = 0xC8;
+  } else if (channel == 3) {
+    configByte = 0xE8;
+  }
+
+  return configByte;
+}
+
+float MCP3428_Read(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;
+    return ((float)value * 62.5)/1000000;
+}

+ 65 - 0
Soft/testSalinite/testSalinite.ino

@@ -0,0 +1,65 @@
+#include "E:\PH_Salinity\Soft\MCP3428\MCP3428.h"
+
+
+#define MCP3428_ADDRESS 0x68 // Adresse I2C du MCP3428
+#define VREFMCP 0.0000625// Tension de référence en volt
+
+// Initialisation
+void setup() {
+	Serial.begin(9600);
+  Wire.begin();
+
+  Wire.requestFrom(MCP3428_ADDRESS, (uint8_t)1);
+  if (!Wire.available()) {
+    Serial.print("No device found at address ");
+    while (1)
+      ;
+  }
+}
+
+void loop() {
+	uint8_t i = 2;
+	float tension = MCP3428_Read(i);
+	Serial.print("     ");
+	Serial.print(i);
+	Serial.print(" Tension: ");
+	Serial.print(tension, 6); // Affiche la tension avec 3 décimales
+	Serial.println(" V");
+
+	delay(10000); // Attendre 1 seconde avant la prochaine lecture
+}
+
+byte getChannelConfigByte(int channel) {
+  byte configByte = 0x88; // Configuration par défaut pour le canal 1
+
+  if (channel == 1) {
+    configByte = 0xA8;
+  } else if (channel == 2) {
+    configByte = 0xC8;
+  } else if (channel == 3) {
+    configByte = 0xE8;
+  }
+
+  return configByte;
+}
+
+float MCP3428_Read(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;
+    return ((float)value * 62.5)/1000000;
+}

+ 65 - 0
Soft/testTemp/testTemp.ino

@@ -0,0 +1,65 @@
+#include <Wire.h>
+//#include "MCP3428.h"
+
+#define MCP3428_ADDRESS 0x68 // Adresse I2C du MCP3428
+#define VREFMCP 0.0000625// Tension de référence en volt
+
+// Initialisation
+void setup() {
+	Serial.begin(9600);
+  Wire.begin();
+
+  Wire.requestFrom(MCP3428_ADDRESS, (uint8_t)1);
+  if (!Wire.available()) {
+    Serial.print("No device found at address ");
+    while (1)
+      ;
+  }
+}
+
+void loop() {
+	int i = 2;
+	float tension = MCP3428_Read(i);
+	Serial.print("     ");
+	Serial.print(i);
+	Serial.print(" Tension: ");
+	Serial.print(tension, 6); // Affiche la tension avec 3 décimales
+	Serial.println(" V");
+
+	delay(1000); 
+}
+
+byte getChannelConfigByte(int channel) {
+  byte configByte = 0x88; // Configuration par défaut pour le canal 1
+
+  if (channel == 1) {
+    configByte = 0xA8;
+  } else if (channel == 2) {
+    configByte = 0xC8;
+  } else if (channel == 3) {
+    configByte = 0xE8;
+  }
+
+  return configByte;
+}
+
+float MCP3428_Read(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;
+    return ((float)value * 62.5)/1000000;
+}