• Pompe sur courant continu

    Activer directement une pompe péristaltique avec Arduino ne peut pas de faire directement car le courant et la tension délivrée par le microcontrôleur ne suffisent pas à faire tourner une pompe péristaltique.

    Un relai et une alimentation externe pourront être utilisés pour faire tourner une petite pompe sous 12V (ce type de pompe a un coût de l'ordre de 10€)

    Le schéma ci-dessous montre une possibilité d'activation de la pompe pendant une durée fixée (ici 500 ms). 



    Un étalonnage du volume délivré par la pompe en fonction du temps d'activation sera nécessaire pour connaitre le volume de solution titrante délivré.

    • Pompe sur moteur pas à pas

      Un moteur pas à pas pour pompes péristaltiques est plus facilement contrôlable et permet une gestion fine des débits, volumes, vitesse de rotation. La gestion du moteur nécessite toutefois un driver spécifique qui permet d'alimenter électriquement le moteur et de le faire tourner de façon contrôlée. Le coût d'un tel matériel est plus important (entre 30 et 40 € pour la pompe et le driver de moteur pas à pas).

         

      Exemple de code permettant de faire tourner une pompe péristaltique sur commande. La commande "A3" fait tourner le moteur pour 3 tours.

      #include <AccelStepper.h>

      #define dirPin 2

      #define stepPin 3

      #define motorInterfaceType 1

      AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin); 

      String ChaineSaisie;

      //------------------------------------------------------------------

      void setup() {

      stepper.setMaxSpeed(1000); //vitesse maximale

      stepper.setAcceleration(500); // Accélération

      Serial.begin(9600); // Communication avec le moniteur série

      }

      //------------------------------------------------------------------

      void loop() {

      if (Serial.available()) { // teste si un caractère arrive depuis le moniteur série

          ChaineSaisie = Serial.readString(); 

          if (String(ChaineSaisie[0]) == "A") { // test pour commande de pompe et nombre de rotation 

               int NbTour=ChaineSaisie.substring(1).toInt();  // récupère le nombre de tours à réaliser

               Serial.println("Activation de pompe A pour " + String(NbTour) + " tours");

              MotorAstepper.move(StepPerRevolution*(1)*NbTour);   // définit le nombre de tour à réaliser 

              MotorAstepper.runToPosition(); // Activation du moteur A

              }

         } // fin du traitement arrivée d'un caractère

      }


      Un étalonnage du volume délivré par la pompe en fonction du nombre de tours sera nécessaire pour connaitre le volume de solution titrante délivré.