Automatisation de la direction de l’eau
description
Transcript of Automatisation de la direction de l’eau
AUTOMATISATION DE LA DIRECTION DE L’EAUCapteur en sortie de vanne
Capteur dans la piscine
Servomoteur commandant la vanne
Alim
+
-
230V230V
Capteur dans
le tuyau
ETUDE DU PROBLEME Température Tuyau > Température Piscine
Chauffer Refroidir Garder la position
ORGANISATION DU PROGRAMMELire température:Piscine et Tuyau
Sortie < Température miniOui
1) Chauffer l’eau : Ouvrir
vanne
non
Sortie > Température max
2) Refroidir l’eau:
Fermer la vanne
Oui
3) Garder la position:
Stopper le moteur
non
Tuyau > Piscinenon
Oui
2) Refroidir l’eau:
Fermer la vanne
DESCRIPTION DU PROGRAMME Travail du convertisseur:sortie=(*adr1)*2
;piscine=(*adr2)*2;tuyau=(*adr3)*2;
if(sortie<tmin+ecartMin){
ecartMin=2;*portb = 0b00000001;ecartMax=0;
}
tmin=30;tmax=32;28 29^30 31^32 33^34 35^36
280 290^300 310^320 330^340 350^360
30°C 32°C 34°C 36°CConversion (°C):
Réel (°C):Réel (mV):
Condition 1 : Ouvrir vanne (chauffer)
S’active quand sortie est inférieur à 30 (<=28)
Continue jusqu’à ce que sortie atteigne 31
if(sortie>tmax-ecartMax){
ecartMax=2;*portb = 0b00000010;ecartMin=0;
}
Condition 2 : Fermer vanne (refroidir)
S’active quand sortie est supérieur à 32 (>=33)
Continue jusqu’à ce que sortie atteigne 30
DESCRIPTION DU PROGRAMME Travail du convertisseur:sortie=(*adr1)
*2;piscine=(*adr2)*2;
tmin=30;tmax=32;28 29^30 31^32 33^34 35^36
280 290^300 310^320 330^340 350^360
30°C 32°C 34°C 36°CConversion (°C):
Réel (°C):Réel (mV):
else{
ecartMax= 0;ecartMin=0;*portb = 0b00000000;
}
Sinon : On laisse le réglage obtenu avant
On n’alimente plus le servomoteurSi les deux conditions ne sont pas valides
DESCRIPTION DU PROGRAMME Travail du convertisseur:sortie=(*adr1)
*2;piscine=(*adr2)*2;
tmin=30;tmax=32;28 29^30 31^32 33^34 35^36
280 290^300 310^320 330^340 350^360
30°C 32°C 34°C 36°CConversion (°C):
Réel (°C):Réel (mV):
PROGRAMME FINAL#include Regis.h
char *portb,*adr1,*adr2, *adr3;char *option,*adctl;int z, y, x, tuyau, sortie, piscine, tmin, tmax, ecartMin, ecartMax;
void main(){option=OPTION;adctl=ADCTL;portb=PORTB;adr1=ADR1;adr2=ADR2;adr3=ADR3;ecartMin=0;ecartMax=0;tmin=30;tmax=32;
while(1){
*option=0b10000000;*adctl=0b00010000;while( *adctl == 0b00010000){
z = *adr1;sortie = z * 2;y = *adr2;piscine = y * 2;x=*adr3;tuyau=x*2;
}
if(tuyau > piscine) {if(sortie < tmin+ecartMin){
ecartMin = 2;*portb = 0b00000001;ecartMax = 0;
}else if(sortie > tmax-ecartMax){
ecartMax =2;*portb = 0b00000010;ecartMin = 0;
}else{
ecartMax = 0;ecartMin =0;*portb = 0b00000000;
}}}}
Déclaration de la base de registre, déclaration et initialisation des variables.
Lecture et conversion des données envoyées par les capteurs de température
Conditions qui commandent le servomoteur de la vanne