remy 3 lat temu
rodzic
commit
9dfcab32b4
1 zmienionych plików z 22 dodań i 5 usunięć
  1. 22 5
      Soft/Lecture/Lecture.ino

+ 22 - 5
Soft/Lecture/Lecture.ino

@@ -1,7 +1,7 @@
-
-#include <HTS.h>
+#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();
@@ -10,7 +10,12 @@ void setup() {
   // Configuration du MCP3428
   Wire.beginTransmission(MCP3428_ADDRESS);
   Wire.write(0x10); // Configurer en mode continu, 16 bits de résolution
-  Wire.endTransmission();
+  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() {
@@ -18,7 +23,13 @@ void loop() {
   for (int i = 0; i < 4; i++) {
     Wire.beginTransmission(MCP3428_ADDRESS);
     Wire.write(0x80 | (i << 5)); // Sélectionner le canal et lancer une conversion
-    Wire.endTransmission();
+    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)
 
@@ -29,10 +40,16 @@ void loop() {
 
     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.println(value);
+    Serial.print(value);
+    Serial.print(" (");
+    Serial.print(voltage, 4);
+    Serial.println(" V)");
   }
 
   delay(1000); // Attendre 1 seconde avant de lire à nouveau les données