Pompe à vide silencieuse

Je voulais une pompe à vide silencieuse qui puisse tourner en permanence pour coffrer les ailes. Une fois le sac vidé de son air, la pompe n’a besoin que d’un débit très faible. Par contre, un débit plus important est utile au début.

La solution est une pompe réglable, animée par un moteur brushless. Kamoer fabrique ce genre de pompe, le modèle KVP04.  On peut l’acheter via Aliexpress.

La pompe marche sous 12V (ou 24V). La régulation est réalisée par un PWM. Kamoer recommande une fréquence entre 15Khz et 25Khz. Une valeur de 0 correspond à la puissance maximale, une valeur à 1 correspond à l’arrêt.

La commande de la pompe peut être facilement réalisée par un arduino alimenté sous 12V. Un shield avec un LCD et quelques boutons permettent le réglage de la pompe par l’utilisateur.

Le LCD est contrôlé par les pins D4 à D9. Les boutons utilisent l’entrée analogique A0. Le PWM utilise la sortie D11 et le Timer 2. En modifiant la fréquence de base du timer (diviseur de la fréquence de base), on peut atteindre 3,9Khz.

La pompe est connectée à l’arduino par 3 fils: le PWM sur D11, le 0v et le 12V sur le connecteur d’alimentation.

Le programme de commande est très simple. Le contrôle de la pompe se fait avec une valeur entre 0 (arrêt) et 255 (débit max). Un appui sur les boutons permet de modifier la valeur de la commande.

#include <LiquidCrystal.h>

// initialize the library with the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int Pin = 11;
int i = 0;

void setup()
{
  Serial.begin(9600); 

  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Pump V0.1");

  //TCCR2B = TCCR2B & B11111000 | B00000001; // set timer 2 divisor to 1 for PWM frequency of 31372.55 Hz
  TCCR2B = TCCR2B & B11111000 | B00000010; // set timer 2 divisor to 8 for PWM frequency of 3921.16 Hz
  pinMode(Pin, OUTPUT);
}

void loop()
{
  // acquisition des boutons
  double val = analogRead(0);

  lcd.setCursor(0, 1);
  lcd.print(" ");
  lcd.setCursor(0, 1);
  lcd.print(String(i));

  // touche reset
  if (val > 630 && val < 650)
  i = 0;

  // touche max
  if (val > 400 && val < 420)
  i = 255;

  // touche up
  if (val > 90 && val < 110)
  {
    if (i < 255)
      i++;
  }
  // touche down
  else if (val > 250 && val < 260)
  {
    if (i > 0)
      i--;
  }

  // controle du PWM
  analogWrite (Pin, 255 - i);
  delay(200);
}

Lorsque la pompe est utilisée au débit max, elle fait un peu de bruit mais c’est très raisonnable. Je vide le sac en 5 minutes.

Une fois le sac vidé, la pompe tourne très peu et est quasi silencieuse.

Je coffre avec 0,1bar de dépression, ce que j’obtiens avec une valeur de 29 pour la commande.

L’étape suivante sera de rajouter un capteur de (dé)pression et une régulation de la commande autour d’une valeur de consigne en KPa.