[Autre] MEMs I2C capteur massique de flux d'air
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

MEMs I2C capteur massique de flux d'air



  1. #1
    poups3864

    MEMs I2C capteur massique de flux d'air


    ------

    Bonjour,


    Je développe un poste de controle qualité qui repose sur le relevé de débit du flux d'air : voici la datasheet du capteur

    https://www.first-sensor.com/cms/upl...BI_E_11354.pdf

    Et le code (qui a fonctionnait par le passé) :

    Code:
    //---Variables de donnEes atraiter---
    long flow;
    long valBrute;
    
    //---Adresse de I2C de l'esclave (cpt WBI)---
    #include <Wire.h> //importation de la librairie I2C
    #define WBI_adress        0x04 //Adresse d'aprEs I2C SCANNER
    
    
    //---Utilisation du I2C---
    //---Adresses relatives au capteur cf.datasheet
    #define WBI_readINSTANTflow   0x83
    #define WBI_read              0x85
    #define WBI_write             0x05
    #define WBI_autoRAZ           0x1C // register cofiguration; WARNING sensor set by FLUIDGENT?
    #define WBI_writeCOMMANDS     0x00
    
    
    
    
    //---Variable de stockage des donnEes du capteur---
    byte data1 = 0;
    byte data2 = 0;
    byte data3 = 0;
    byte data4 = 0;
    
    
    
    //-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    //---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP---SETUP
    //-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    void setup() {
    
      Serial.begin(115200);//Initialisation du port USB
      Serial.print("\n****SETUP****\n"); // indication debut SetUp
    
      Wire.begin();//µC en mode maitre
      Wire.setClock(100000);
    
    
       for (int i = 0; i < 10; i++) {
        flow = 0;
        valBrute = 0;
    
        //---demander les donnEes a l'esclave---
        Wire.beginTransmission(WBI_adress);// secure the line between master and slave
        Wire.write(WBI_readINSTANTflow); //send request for the 4 bytes decribing instant flow
         if (Wire.endTransmission () == 0){
          Serial.print("Ok"); Serial.print("\t"); 
         }
          
        else{
          Serial.print("Nok"); Serial.print("\t"); 
        }
         
        Wire.requestFrom(WBI_adress, 4, true);
    
    
        flow = 0;
        //---memoriser les donnEes---
        if ( 4 <= Wire.available()) {
          Serial.println("Avlb");
          data1 = Wire.read();//strongest byte
          data2 = Wire.read();
          data3 = Wire.read();
          data4 = Wire.read();//weakest byte
        }
    
        Serial.println(data1,HEX); Serial.print("\t");
        Serial.print(data2,HEX); Serial.print("\t");
        Serial.print(data3,HEX); Serial.print("\t");
        Serial.print(data4,HEX); Serial.print("\t");
    
    
        flow = (data1 * 16777216) + (data2 * 65536) + (data3 * 256) + (data4);
        valBrute = flow + valBrute;
    
    
        Serial.println(flow);
        Serial.println();
    
      }
    
      valBrute = valBrute /10 ;
    
     
    
    
    
    }//setup
    Jusqu'à maintenant mes codes fonctionnaient sur Arduino (j'utilise la Uno mais je vais passer sur Mega j'ai besoin de plus de sorties) j'ai utilisé des résistances de pull-up de 4.7 k ohms (je sais sur la datasheet 10kohms mais ça a fonctionné en 4.7kohms et pas en 10kohms). Dernièrement dans mes manips un capteur a grillé et je ne me l'explique pas.

    H1 : il faut un montage intermédiaire.
    H2: La longueur de câblage est supérieur à 1m disfonctionne le mode de communication I2c (je n'y crois pas trop vu qu'on est en binaire).
    H3 : SDA et SCL sont raccordés à d'autres sortie.


    Merci d'avance pour les éclairages à venir!

    -----
    Dernière modification par Antoane ; 04/05/2019 à 07h19. Motif: Ajout balises url

  2. #2
    Jack
    Modérateur

    Re : MEMs I2C capteur massique de flux d'air

    Mets un oscillo ou un analyseur logique sur SDA et SCL et tu verras plus clair sur l'origine du problème.

  3. #3
    jiherve

    Re : MEMs I2C capteur massique de flux d'air

    bonjour
    qu'est ce qui est grillé ?
    JR
    l'électronique c'est pas du vaudou!

  4. #4
    poups3864

    Re : MEMs I2C capteur massique de flux d'air

    Bonjour à vous deux,

    J'ai trouvé les causes du disfonctionnement :

    1. L'adresse 0x00 est réservée sous Arduino je me sens nul de ne pas y avoir pensé avant
    2. en consultant la datasheet est en observant des temps de réponses j'ai pu déterminer que les résistances de pull up étaient incluses ainsi que les capa
    3. mon capteur est bien grillé car (enfin c'est moi qui l'interprète comme çà) entre SDA et Vs la résistance est nulle.

    Merci pour le conseil de l'oscillo

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : MEMs I2C capteur massique de flux d'air

    Quelle adresse 0x00? Je ne vois pas à quoi cela fait référence ni qaund tu en as parlé.

Discussions similaires

  1. Capteur de flux thermique
    Par alex0rcs dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 65
    Dernier message: 07/03/2014, 11h39
  2. VMC double flux thermodynamique avec capteur solaire et puits canadien, chauffage +eau chaude
    Par Eric DUPONT dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 17
    Dernier message: 30/05/2011, 09h08
  3. Capteur de mesure du flux solaire
    Par vincent sch dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 4
    Dernier message: 15/10/2010, 20h46
  4. Capteur de flux thermique
    Par benjibul dans le forum Électronique
    Réponses: 1
    Dernier message: 04/03/2010, 14h15
  5. le flux molaire et le flux massique
    Par inviteb57bb51a dans le forum Chimie
    Réponses: 3
    Dernier message: 08/12/2009, 15h19
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...