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