|
|
@@ -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
|