Aller au contenu

Système de pompes doseuses


Frenatus

Messages recommandés

Bonjour,

 

Voici un petit tuto afin de réaliser vous même votre système de pompes doseuses.

Le coup de revient est de l'ordre de 25 euros pour 3 pompes et il vous faut un tournevis.

 

Le matériel :

post-2577-0-04963100-1517048082.jpg

 

Le montage (10 minutes) :

 

Nous utilisons un shield, il suffit donc de le ficher sur la carte UNO.

C'est terminé. :siffle

 

Enfin, il faut relier les extrémités des moteurs des pompes aux emplacements prévus (c'est écrit dessus).

L'alimentation (12V), à la carte UNO et à la source d'alimentation externe du shield(c'est écrit dessus).

Oter le jumper sur le shield afin de permettre une alimentation externe (par défaut la présence du jumper entraîne l'alimentation par la carte UNO qui ne sera pas assez puissante pour cela).

 

Attention à bien vérifier les polarité (+ sur + et - sur -).

Pour les pompes, elles s'en moquent, elles tourneront dans un sens ou l'autre c'est égal.

Voilà c'est prêt.

 

post-2577-0-13740100-1517048558.jpg

 

Le code :

 

Il y a plein de manière de faire.

En voici une très simple qui injecte sur 24H :

#include <AFMotor.h> // on utilise une bibliothèque permettant de contrôler le shield moteur


AF_DCMotor motor1(1);  // j'utilise 3 moteurs ici.
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);




const int Qinject1 = 50; //quantité à injecter de KH en ml, à modifier selon besoin
const int Qinject2 = 50; //quantité à injecter de CA en ml, à modifier selon besoin
const int Qinject3 = 50; //quantité à injecter de SS en ml, à modifier selon besoin
const float debit_pompe1 = 0.5; // débit des pompes ml/sec, à modifier selon besoin
const float debit_pompe2 = 0.5; // débit des pompes ml/sec, à modifier selon besoin
const float debit_pompe3 = 0.5; // débit des pompes ml/sec, à modifier selon besoin
unsigned long delai_attente = 300000;// une injection toutes les 5 minutes, à modifier selon besoin
unsigned long  duree_injection1=1;//durée injection en milliseconde
unsigned long  duree_injection2 = 1;//durée injection en milliseconde
unsigned long  duree_injection3 = 1;//durée injection en milliseconde


void setup()
{


motor1.setSpeed(255);  //Vitesse max du moteur (de 0 à 255), cela permet de régler le débit de 
motor2.setSpeed(255);  // chaque pompe en fonction de vos besoins. Ici au max.
motor3.setSpeed(255); 
calcul_des_delais();//fonction de calcul des temps d'injection
}


void loop()
{
motor1.run(FORWARD);//demmare moteur1
delay(duree_injection1);//attend
motor1.run(RELEASE);//stoppe moteur1
delay(delai_attente- duree_injection1);//attend
motor2.run(FORWARD);
delay(duree_injection2);
motor2.run(RELEASE);
delay(delai_attente - duree_injection2);
motor3.run(FORWARD);
delay(duree_injection3);
motor3.run(RELEASE);
delay(delai_attente - duree_injection3);
}


void calcul_des_delais() {
int nb_injection;//nb d'injection d'une seconde
//durée de la phase d'injection en seconde
nb_injection = 86400000/ delai_attente;// nb d'injection pour 5 min d'attente
nb_injection = nb_injection / 3; //3 produits dans mon cas donc nb d'injection pour 1 produit
duree_injection1 = Qinject1;
duree_injection1 = duree_injection1 *1000;
duree_injection1 = duree_injection1 / debit_pompe1;
duree_injection1 = duree_injection1 / nb_injection;
duree_injection1 = abs(duree_injection1);
//Calcul pour le CA
duree_injection2 = Qinject2;
duree_injection2 = duree_injection2 *1000;
duree_injection2 = duree_injection2 / debit_pompe2;
duree_injection2 = duree_injection2 / nb_injection;
duree_injection2 = abs(duree_injection2);
//calcul pour le SS
duree_injection3 = Qinject3;
duree_injection3 = duree_injection3 *1000;
duree_injection3 = duree_injection3 / debit_pompe1;
duree_injection3 = duree_injection3 / nb_injection;
duree_injection3 = abs(duree_injection3);
}

Lien vers le commentaire
Partager sur d’autres sites

Merci pour le tuto, concis, précis. Avec toi, on croirait que tout est facile :)
  
Si j'ai bien compris, dans ce programme les injections ont lieu sur chaque pompe alternativement, aux mêmes intervalles de temps et continuellement 24h/24h.

Le paramétrage se fait donc via le programme. Tu pourrais ajouter un petit module de paramétrage externe (écran, boutons...) du délai, débit, durée d'injection, pour être autonome "comme un grand" ;)
 

Lien vers le commentaire
Partager sur d’autres sites

En fait, ce n'est ni le montage final, ni ce code.

J'ai mis des delay, pour la compréhension.

Pour quelqu'un qui se lance c'est directement compréhensible.

Tu sais bien qu'il ne faut pas faire ça sinon tu es coincé.

 

J'ai ajouté un esp32 par dessus en mode serveur. Tu modifiés donc les paramètres via un ordi, un smartphone, enfin n'importe quoi qui peut faire du net.

Tout est modifiable, la uno te calculé le temps d'injection pour chaque produit en fonction de ce que tu mets.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an plus tard...
Le 1/29/2018 à 10:37 AM, Denisio a dit :

Merci pour le tuto, concis, précis. Avec toi, on croirait que tout est facile :)
  
Si j'ai bien compris, dans ce programme les injections ont lieu sur chaque pompe alternativement, aux mêmes intervalles de temps et continuellement 24h/24h.

Le paramétrage se fait donc via le programme. Tu pourrais ajouter un petit module de paramétrage externe (écran, boutons...) du délai, débit, durée d'injection, pour être autonome "comme un grand" ;)
 

Je m'enquiquinais hier soir, et du coup, j'ai fait une petit appli android...

Pompe controlable et parametrable de l'autre bout du monde avec son smartphone

 

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

En poursuivant votre navigation, vous acceptez l’utilisation des cookies pour vous proposer des contenus adaptés à vos centres d’intérêt et réaliser des mesures pour améliorer votre expérience sur le site. Pour en savoir plus et gérer vos paramètres, cliquez ici