#include //#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; }