• débimètre DIY V0.1

    Bien le bonjour à vous!

    Je mène actuellement quelques recherches sur l'hydrogène et j'ai besoin de connaître la quantité de gaz qui peut être produit. Du moins avoir une image du débit proche de la réalité.

    Il y a plusieurs façon de procéder:

    - La plus accessible est de mesurer le temps pour vider une bouteille d'eau pleine dont le goulot et dans une bassine d'eau.

    - Dans les moyens un peu plus compliqués à mettre en œuvre nous avons le tube de "Pitot" qui mesure une différence de pression. D’où on en déduit le débit et qui ne contient aucune pièce en mouvement.

    - La mesure grâce à des obstacles telle qu'une hélice par exemple pour un anémomètre, ou un volet (vieux débitmètre de voiture exemple 205 GTI). Ces débitmètres contiennes des pièces en mouvements qui peuvent ce gripper et affecter la mesure.

    - La mesure par différence de température. A la place d'une différence de pression comme avec le tube de "pitot" on mesure une différence de température grâce à un élément que l'on chauffe à une certaine température. Lors du passage du gaz la température baisse. De cette baisse on en déduit le débit. Débitmètre très utiliser en automobile.

    Il y en a d'autre mais en gros c'est toujours la même histoire. Pour connaître un débit on cherche à mesurer une différence entre deux points comme avec un voltmètre. La tension étant la différence entre deux potentiels.

     

    Ici j'ai essayé avec un ventilateur de PC à trois fils(comme un anémomètre).

    voici à quoi il ressemble:

    débimètre DIY

    débimètre DIY

     

    Oui je sais il n'a pas 3 fils mais 4 sur la photo!

    Si vous démontez un ventilo 3 fils classique (pas un ventilo qui gère le pwm) vous trouverez sûrement un composant du genre ATS277.

    C'est quoi ce composant? Ce composant est un capteur à "effet hall". Il détecte le changement de champ magnétique. C'est grâce à lui que votre pc connaît la vitesse de rotation de votre ventilateur. Il ce compose de 4 pattes: Vcc, gnd, voie1 ,voie2. Ici moi je n'utilise que Vcc, gnd et une des deux voie ça nous fait donc 3 fils.

     

    Point important sur la mise en œuvre:

    Pour mesurer des débits faibles en dessous du litre/minute il nous faut le moins de résistance possible.

    Dans mon cas pour gagner au maximum de fluidité et enlever le plus de contrainte au mouvement de l’hélice, il ne reste que le roulement et le capteur.

    La particularité de ce montage et au niveau de l'entrée du gaz :

    débimètre DIY

    La sensibilité du bordel ce joue énormément ici. Ce trou mesure environ moins 1mm de diamètre et est positionné à la perpendiculaire de l'hélice!

    Avec ce trou je ne peux pas descendre en dessous de environ 0.6L/min. 

    Celui ci concentre le flux de gaz sur 1 pâle de l’hélice. La réduction de diamètre a aussi pour effet d’élever la vitesse du gaz (effet venturi, pour garder le même débit le gaz doit accélérer ). Tout ça pour donner un résultante des forces plus important sur l’hélice.

    En revanche la sortie à le même diamètre que le tube qui achemine le gaz.

    Le boîtier doit bien sur être étanche.

    Pour calibrer l'engin j'ai effectué plusieurs mesure de débit avec la méthode de la bouteille à l'envers d'où j'ai pu en tirer une petite équation. Elle n'est pas la réalité vue toute les approximations qu'il y a mais elle donne une image plutôt réaliste.

    Voici ce que j'ai pu obtenir:

    débimètre DIY

    Pour gérer le tout j'utilise un ATtiny85 avec un écran LCD relier en i2C.

    Voici le code arduino qui peut facilement être modifié pour un ATmega:

    /*-----( Import needed libraries )-----*/
    #include <TinyWireM.h>          // pour la com en i2c de l'ATtiny
    #include <LiquidCrystal_I2C.h>  // pour l'affichage en i2c du lcd

    /*-----( Declare Constants )-----*/

    // pins configurées en entrée sur l'ATtiny
    #define INPUT_PIN      1  // Pin 6 de l'ATtiny85, relier à la voie 1 de ATS277    
    #define TIMEOUT 1000000  // Delay limite pour sortir de pulsIn si aucune impulsion détectée

    /*-----( Declare objects )-----*/

    // Déclaration de l'écran lcd pour la communication en i2c
    //                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);


    /*-----( Declare Variables )-----*/

    // Variable contenant la vitesse de rotations par minute
    unsigned long rpm;
    // Variable contenant le débit en L/min
    float flow;


    /*----------( SETUP: RUNS ONCE )----------*/
    void setup()  
    {
      // initialisation de l'écran ici un 16x2
      lcd.begin(16,2);       
     
      // Place la pin de la sonde en entrée
      pinMode(INPUT_PIN, INPUT);
      
      // Sonde à collecteur ouvert -> pull-up obligatoire
      digitalWrite(INPUT_PIN, HIGH);

      // ------- petit helloworld -------
      for(int i = 0; i< 3; i++)
      {
        lcd.backlight();
        delay(150);
        lcd.noBacklight();
        delay(150);
      }
      lcd.backlight();  
     
      //------- écran d'accueil -------
      lcd.setCursor(3,0);
      lcd.print("Debitmetre");
      lcd.setCursor(5,1);
      lcd.print("V0.1");
     
      delay(3000);
      lcd.clear();
     
      lcd.setCursor(0,0);
      lcd.print("Vit: 0tr/min");
      lcd.setCursor(0,1);
      lcd.print("Deb: 0L/min");
    }/*--(end setup )---*/


    /*----------( LOOP: RUNS CONSTANTLY )----------*/
    void loop() 
    {
      // Mesure de la durée du temps à l'état "bas" en microsecondes,
      rpm = pulseIn(INPUT_PIN, LOW, TIMEOUT);
     
      // Calcul de la vitesse en tr/min à partir du temps acquis
      rpm = 60 / (rpm / 1000000.0);
      // Avec l'ATS277 on obtient 2 impulsions par tour.
      // il faut donc diviser par 2 pour obtenir la vitesse réel 
      rpm /= 2;
     
      // Calcul du débit. Equation tirer des mesures.
      flow = (rpm*0.001)+0.752;
     
      delay(500);
      
      lcd.setCursor(5 ,0);
      lcd.print(rpm);
      lcd.print("tr/min   ");
      lcd.setCursor(5 ,1);
      lcd.print(flow);
      lcd.print("L/min    ");
     
    }

    /* ( THE END ) */

    Et voici le code en action (peut être une vidéo plus tard):

    débimètre DIY

     

    Voila pour un premier jet.

    @ bientôt.

     

     

    Les sites qui m'ont servis :

    https://skyduino.wordpress.com/2012/05/03/arduino-tachymetre-diy-et-ventilateur-de-pc/ (code arduino inspiré ) 

    http://heartygfx.blogspot.fr/2011/10/capteur-effet-hall.html (pour le capteur)