Vous êtes sur la page 1sur 25

18/10/2022 19:44 Système automatique de pompage avec Arduino – Cours | Projets Divers

“ Découvrez notre Chaîne YouTube "Ingénierie et Projets"


Cerveau"
Système
Découvrez automatique
notre de"Information
Chaîne Secondaire pompage avec etArduino
Neuronale l'Ingénierie du

 Obtenir le fichier PDF

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

Projet Système automatique de pompage avec Ardui…


Ardui…

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)

Comment fabriquer facilement un détecteur du niveau


?
Voir le projet: Capteur de niveau d’eau avec Arduino 

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

Câblage des composants


Détecteur B: Pin 2
Détecteur H: 3
LED (B): 5
LED (H): 6
Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 7/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 !

HB=0 lorsque H=0 & B=0


HB=1 lorsque H=0 & B=1
HB=2 lorsque H=1 & B=0
HB=3 lorsque H=1 & B=1

1 int GetHB(int H_Pin, int B_Pin)

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 }

Mise en marche de la pompe et son indicateur SetPompe()


La LED (P) reflète l’état de la pompe P en revanche le relais est activé niveau bas. Autrement dit, le
relais est actif lorsque la sortie numérique 10 de la carte Arduino est égale à « 0 » (inactif à « 1 »).
Par conséquent, les états des sorties 9 et 10 doivent être complémentaires et déclenchés en
parallèle. La fonction SetPompe() permet d’activer les deux sorties en respectant l’état de chacune.

1 void SetPompe(byte P_val, int PP, int P_LEDD )

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 }

Activation des voyants H et B SetLED()


La fonction SetLED() active les LED H et B en fonction de l’état de la variable HB

HB=0 : Deux LED éteintes


HB=1 : LED B allumée
HB=2: LED H allumée
HB=3 : Deux LED allumées

1 void SetLED(byte HB_val, int Flag_BB, int Flag_HH )

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 }

Comment programmer un état ?


On peut considérer un état comme une boucle infinie. On active une ou plusieurs sorties à
l’intérieur de la boucle. La sortie de boucle est assurée par la validation de la transition vers l’état
suivant. Dans notre cas, durant l’état « 1 », on active la pompe et son indicateur lorsque HB=0 en
boucle. Puis, on passe à l’état « 2 » lorsque HB=1. Ci-dessous la programmation de l’état « 1 » :

1 …

2 // Etat '1'

3 while(1)

4 {

5 // Lectures H & B

6 HB_val=GetHB(H, B);

8 // Condition de l'activation des sorties

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

19 // Délais (pas nécessaire)

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

1 // Entrées détecteur de niveaux

2 const int B = 2; // Bas

3 const int H = 3; // Haut

5 // Sorties indicateurs (LEDs)

6 const int Flag_B = 5;

7 const int Flag_H = 6;

8 int HB_val=0;

10 // Sortie pompe

11 const int P_LED = 9;

12 const int P = 10;

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

42 // Condition de l'activation des sorties

43 if(HB_val==0)

44 {
45 SetPompe(1, P,P_LED);

46 SetLED(HB_val,Flag_B, Flag_H);

47 }
48

49 // Condition de passage à l'état suivant

50 if(HB_val==1)

51 break;

52

53 // Délais (pas nécessaire)

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

102 int GetHB(int H_Pin, int B_Pin)

103 {

104 int HB=0;

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

114 void SetLED(byte HB_val, int Flag_BB, int Flag_HH )

115 {

116 switch (HB_val)

117 {

118 case 0:

119 digitalWrite(Flag_BB, LOW);

120 digitalWrite(Flag_HH, LOW);

121 break;
122 case 1:

123 digitalWrite(Flag_BB, HIGH);

124 digitalWrite(Flag_HH, LOW);

125 break;
126 case 2:

127 digitalWrite(Flag_BB, LOW);

128 digitalWrite(Flag_HH, HIGH);

129 break;
130 case 3:

131 digitalWrite(Flag_BB, HIGH);

132 digitalWrite(Flag_HH, HIGH);

133 break;
134 }

135 }

136

137 void SetPompe(byte P_val, int PP, int P_LEDD )

138 {

139 if(P_val==0)

140 {

141 digitalWrite(P_LEDD, LOW);

142 digitalWrite(PP, HIGH);


143 }

144 else

145 {

146 digitalWrite(P_LEDD, HIGH);

147 digitalWrite(PP, LOW);

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

Tout les projets microcontrôleur


Nous Soutenir

‘ Le blog contient des publicités, elles permettent de financer l'hébergement et


maintenir le blog en fonctionnement. Vous pouvez utiliser adblock pour une lecture
sans publicités.

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

Série Analyse fréquentielle

Série Drone | 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 Capteurs | Détecteurs

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 Asservissement | Arduino

Série Traitement d’Image

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

Langage C et VHDL pour les débutants

Traitement d’Images avec Matlab

Tout les livres pour les Électroniciens

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

Rejoindre la team des IR

Kits drone

Devenir Ingénieur

YouTube 18 k

Traitement d’Images avec Matlab

Tout les livres pour les Électroniciens

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

Langage C et VHDL pour les débutants

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

Rejoindre Notre chaîne

Rechercher

Rechercher…

ACCUEIL
CONTACT
À PROPOS
NEWSLETTER
AVIS VISITEURS
ENVOYEZ-NOUS UN FICHIER

JE FAIS UN DON
NOS LIVRES
FAQ
CONCOURS
LOGIN

Hestia | Développé par ThemeIsle

Cookies settings
https://www.electronique-mixte.fr/microcontrolleurs/systeme-automatique-de-pompage-avec-arduino/ 25/25

Vous aimerez peut-être aussi