A15 Système Automatique de Pompage Avec Arduino - Cours - Projets Divers
A15 Système Automatique de Pompage Avec Arduino - Cours - Projets Divers
A15 Système Automatique de Pompage Avec Arduino - Cours - Projets Divers
‘
Cerveau"
Système
Découvrez automatique
notre de"Information
Chaîne Secondaire pompage avec etArduino
Neuronale l'Ingénierie du
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 1/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Objectifs
Savoir le principe de fonctionnement d’un système de pompage automatique
Savoir faire le chronogramme des taches d’un système automatique (Grafcet)
Se familiariser avec l’implémentation d’un GRAFCET
Savoir comment implémenter un Grafcet avec Arduino
Savoir comment simuler le fonctionnement d’un système Avec Arduino
Etc.
Vidéo démonstration
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 2/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Fonctionnement
Le mini projet est un système automatique de pompage. Il sert à contrôler le remplissage d’un
réservoir d’eau (ou fluide) d’une manière automatique en utilisant une pompe électrique. Le
montage est constitué des éléments suivants :
Pompe (P) : Elle permet de remplir le réservoir avec de l’eau lorsque le niveau d’eau est faible. La
pompe est mise en marche lorsque le niveau d’eau est atteint de niveau bas (B). Elle s’arrête
lorsque le niveau d’eau arrive au niveau haut (H).
Carte relais : Mise en marche/arrêt de la pompe. La carte relais contient un relais de puissance
(AC/DC) qui assure la mise sous tension de la pompe. Les caractéristiques du relais doivent être
adéquates avec celle de la pompe (tension, puissance). Nous utiliserons dans ce projet un relais
(250V/10A) menu avec un étage de puissance (isolation optique, transistor, diode de retour, etc.).
En effet une tension TOR 5V à faible courant permet de déclencher le relais. Le relais ne nécessite
pas un transistor de puissance, tout est intègre dans la carte relais !
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 3/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Détecteurs de niveaux : Le réservoir dispose de deux détecteur TOR de niveaux Haut (H) et Bas
(B). Les deux détecteurs fournissent un signal logique de la façon suivante :
« 0 » : Lorsque le fluide n’attient pas le détecteur, ce dernier fournit un niveau logique bas ou
une tension égale à 0V
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 4/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
« 1 » : Lorsque le fluide attient le détecteur, ce dernier fournit un niveau logique haut ou une
tension égale à 5V
LEDs indicatrices : On dispose de trois voyants lumineux (LEDs) indiquent l’état des détecteurs et
celui de la pompe :
LED (P) : Illustre l’état de la pompe. Elle s’allume lorsque la pompe est mise en route
LED (H) : Illustre l’état du détecteur (H). Elle s’allume lorsque le fluide attient le niveau haut
LED (B): Illustre l’état du détecteur (B). Elle s’allume lorsque le fluide attient le niveau bas
Carte Arduino : Il sert à contrôler l’ensemble du système (lecture des détecteurs et envoie des
consignes aux LEDs et à la pompe)
Chronogramme du système
On considère la variable HB sur deux bits : Bit du poids fort H indique l’état du détecteur, B pour
celui du bas. Exemples : HB=00 : Les deux détecteurs sont inactifs, HB=01 : Détecteur bas actif,
etc. Le programme principal contient 4 états :
Phase de remplissage
État « 1 » : Il est la position initiale du système. Il faut assurer que le réservoir est vide avant
de lancer le programme. En effet, lorsque le réservoir est vide HB=00. Durant cet état, le
programme mis en route la pompe (P=1) tant que HB=00. Lorsque HB=01, le programme
transit à l’état suivant
État « 2 » : Le programme mis en route la pompe (P=1) tant que HB=01. Autrement dit, le
pompe continue de remplir le réservoir tant le détecteur H n’est pas attient. Une fois HB=11,
le programme passe à l’état suivant
Phase de vidange
État « 3 » : Le programme met en arrêt la pompe tant le réservoir est plient (HB=11) ou
défaut du détecteur bas (HB=10). En effet, l’état 10 n’est pas envisageable dans cas pratique
car il ‘est pas possible que le fluide atteigne le niveau haut (H=1) sans que le niveau bas soit
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 5/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
actif (B=1). Par conséquent, la présence de l’état HB=10 est certainement un défaut du
détecteur bas. Le programme transit à l’état suivant le fluide quitte le détecteur haut (HB=01)
État « 4 » : La pompe reste en état d’arrêt (P=0) tant que le détecteur B est actif (HB=01)
(fluide entre H et B). Lorsque le fluide arrive au dessous du détecteur B (HB=00) on relance le
cycle de fonctionnent. Ci-dessous le chronogramme du système.
Chronogramme
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 6/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
LED (P): 9
Pompe (P): 10
Programme principal
Lecture des détecteurs : GetHB()
La fonction GetHB() permet de lire les états des détecteurs H et B et renvoie une valeur comprise
entre 0 et 3. En effet la valeur de retour est notre variable HB !
2 {
3 int HB=0;
4 if(digitalRead(B_Pin)==1)
5 HB=HB+1;
6
7 if(digitalRead(H_Pin)==1)
8 HB=HB+2;
9
10 return HB;
11 }
2 {
3 if(P_val==0)
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 8/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
4 {
5 digitalWrite(P_LEDD, LOW);
6 digitalWrite(PP, HIGH);
7 }
8 else
9 {
10 digitalWrite(P_LEDD, HIGH);
11 digitalWrite(PP, LOW);
12 }
13 }
2 {
3 switch (HB_val)
4 {
5 case 0:
6 digitalWrite(Flag_BB, LOW);
7 digitalWrite(Flag_HH, LOW);
8 break;
9 case 1:
10 digitalWrite(Flag_BB, HIGH);
11 digitalWrite(Flag_HH, LOW);
12 break;
13 case 2:
14 digitalWrite(Flag_BB, LOW);
15 digitalWrite(Flag_HH, HIGH);
16 break;
17 case 3:
18 digitalWrite(Flag_BB, HIGH);
19 digitalWrite(Flag_HH, HIGH);
20 break;
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 9/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
21 }
22 }
1 …
2 // Etat '1'
3 while(1)
4 {
5 // Lectures H & B
6 HB_val=GetHB(H, B);
9 if(HB_val==0)
10 {
11 SetPompe(1, P,P_LED);
12 SetLED(HB_val,Flag_B, Flag_H);
13 }
14
15 // Condition de passage à l'état suivant
16 if(HB_val==1)
17 break;
18
20 delay(200);
21 }
22 …
Problème de démarrage
Nous constatons que la mise en marche de la pompe durant l’état « 1 » exige l’inactivation des
deux détecteurs (HB=0) ou le vidange du réservoir. Il est intéressant d’intégrer le mode vidage (ou
nettoyage) du réservoir d’une façon manuelle en utilisant par exemple un interrupteur (« 1 » : Mode
normal, « 0 » : Mode manuel). Durant ce mode on désactive la pompe (P=0) puis on affiche les
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 10/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
états des LEDs. On met en marche par la suite le système lorsque les deux LED (H et B) sont
éteintes.
1 void loop()
2 {
3 if(Mode_Sel=1)
4 {
5 Mode Normal;
6 }
7 else
8 {
9 Mode vidange;
10 }
11 }
Programme principal
8 int HB_val=0;
10 // Sortie pompe
13 void setup()
14 {
15 Serial.begin(9600);
16
17 //Init
18 pinMode(B,INPUT);
19 pinMode(H,INPUT);
20 pinMode(Flag_B,OUTPUT);
21 pinMode(Flag_H,OUTPUT);
22 pinMode(P,OUTPUT);
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 11/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
23 pinMode(P_LED,OUTPUT);
24
25 digitalWrite(Flag_B, LOW);
26 digitalWrite(Flag_H, LOW);
27 digitalWrite(P_LED, LOW);
28 digitalWrite(P, HIGH);
29 }
30
31 void loop()
32 {
33 /*Serial.println(GetHB(H, B));
34 delay(1000); */
35
36 // Etat '1'
37 while(1)
38 {
39 // Lectures H & B
40 HB_val=GetHB(H, B);
41
43 if(HB_val==0)
44 {
45 SetPompe(1, P,P_LED);
46 SetLED(HB_val,Flag_B, Flag_H);
47 }
48
50 if(HB_val==1)
51 break;
52
54 delay(200);
55 }
56 // Etat '2'
57 while(1)
58 {
59 HB_val=GetHB(H, B);
60 if(HB_val==1)
61 {
62 SetPompe(1, P,P_LED);
63 SetLED(HB_val,Flag_B, Flag_H);
64 }
65 if(HB_val==3)
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 12/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
66 break;
67
68 delay(200);
69 }
70
71 // Etat '3'
72 while(1)
73 {
74 HB_val=GetHB(H, B);
75 if((HB_val==3)||(HB_val==2))
76 {
77 SetPompe(0, P,P_LED);
78 SetLED(HB_val,Flag_B, Flag_H);
79 }
80 if(HB_val==1)
81 break;
82
83 delay(200);
84 }
85
86 // Etat '4'
87 while(1)
88 {
89 HB_val=GetHB(H, B);
90 if(HB_val==1)
91 {
92 SetPompe(0, P,P_LED);
93 SetLED(HB_val,Flag_B, Flag_H);
94 }
95 if(HB_val==0)
96 break;
97
98 delay(200);
99 }
100 }
101
103 {
105 if(digitalRead(B_Pin)==1)
106 HB=HB+1;
107
108 if(digitalRead(H_Pin)==1)
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 13/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
109 HB=HB+2;
110
111 return HB;
112 }
113
115 {
117 {
118 case 0:
121 break;
122 case 1:
125 break;
126 case 2:
129 break;
130 case 3:
133 break;
134 }
135 }
136
138 {
139 if(P_val==0)
140 {
144 else
145 {
148 }
149 }
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 14/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Téléchargement
Arduino: Système automatique de pompage avec Arduino
Photos du projet
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 15/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 16/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
‘
Nous Soutenir
Projets électroniques
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 17/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Projets Arduino
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 18/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Nos kITS
Série Arduino
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 19/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Série GRAFCET
Série Proteus
Série Matlab
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 20/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 21/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Kits Arduino
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 22/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Kits drone
Devenir Ingénieur
YouTube 18 k
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 23/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Besoin d’Aide ?
Cookies settings
Projets FPGA Pour les Électroniciens
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 24/25
18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers
Projets-FPGA Pour les Électroniciens
Rechercher
Rechercher…
ACCUEIL
CONTACT
À PROPOS
NEWSLETTER
AVIS VISITEURS
ENVOYEZ-NOUS UN FICHIER
JE FAIS UN DON
NOS LIVRES
FAQ
CONCOURS
LOGIN
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 25/25