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; }