Classes et code de la partie pompe du Robot 2021

Dependencies:   mbed ident_crac

Committer:
smarecar
Date:
Fri Mar 05 18:46:42 2021 +0000
Revision:
7:b7dc6201b520
Parent:
6:b06c430a7e14
Child:
8:ba95705cf7d4
prog home a tester

Who changed what in which revision?

UserRevisionLine numberNew contents of line
goldmas 0:253443d82cba 1 #include "bloc_monopompe.h"
goldmas 0:253443d82cba 2
goldmas 0:253443d82cba 3 bloc_monopompe::bloc_monopompe (PinName pompe, PinName electrovanne, PinName capteur)
goldmas 0:253443d82cba 4 : _pompe(pompe), _electrovanne(electrovanne), _capteur(capteur)
goldmas 0:253443d82cba 5 {
goldmas 0:253443d82cba 6 _pompe.period_us(20) ;
goldmas 0:253443d82cba 7 }
goldmas 0:253443d82cba 8
goldmas 4:4bae30d48662 9 void bloc_monopompe::aspirer (void)
goldmas 0:253443d82cba 10 {
smarecar 7:b7dc6201b520 11 float val_cpt;
goldmas 0:253443d82cba 12 _pompe = PWM_POMPE ;
goldmas 0:253443d82cba 13 _electrovanne = ELEC_OUVERTE ;
smarecar 7:b7dc6201b520 14 wait_ms(1000) ;
smarecar 7:b7dc6201b520 15 val_cpt = _capteur.read() ;
goldmas 0:253443d82cba 16 wait_ms(100) ;
goldmas 0:253443d82cba 17
smarecar 7:b7dc6201b520 18 if( val_cpt >= SEUIL_CPT)
goldmas 0:253443d82cba 19 {
smarecar 7:b7dc6201b520 20 _gobelet_en_place = 1 ;
smarecar 7:b7dc6201b520 21 }
smarecar 7:b7dc6201b520 22 else
smarecar 7:b7dc6201b520 23 {
smarecar 7:b7dc6201b520 24 _gobelet_en_place = 0 ;
goldmas 0:253443d82cba 25 }
goldmas 0:253443d82cba 26 }
goldmas 0:253443d82cba 27
goldmas 4:4bae30d48662 28 void bloc_monopompe::relacher (void)
goldmas 0:253443d82cba 29 {
goldmas 0:253443d82cba 30 if(_capteur.read() >= SEUIL_CPT)
smarecar 7:b7dc6201b520 31 {
smarecar 7:b7dc6201b520 32 _pompe = PWM_STOP_POMPE;
smarecar 7:b7dc6201b520 33 _electrovanne = ELEC_FERME ;
smarecar 7:b7dc6201b520 34 wait_ms(100) ;
smarecar 7:b7dc6201b520 35 }
smarecar 7:b7dc6201b520 36 _gobelet_en_place = 0 ;
goldmas 0:253443d82cba 37 }
goldmas 0:253443d82cba 38
goldmas 4:4bae30d48662 39 char bloc_monopompe::etat_actuel (void)
goldmas 0:253443d82cba 40 {
goldmas 4:4bae30d48662 41 char etat_groupe = 0 ;
goldmas 4:4bae30d48662 42 bool etat_pompe;
goldmas 4:4bae30d48662 43 bool etat_electrovanne ;
goldmas 4:4bae30d48662 44
goldmas 4:4bae30d48662 45 if(_pompe.read() != 0) //test de la pompe
goldmas 4:4bae30d48662 46 etat_pompe = 1 ;
goldmas 4:4bae30d48662 47 else
goldmas 4:4bae30d48662 48 etat_pompe = 0 ;
goldmas 4:4bae30d48662 49
goldmas 4:4bae30d48662 50 if(_capteur.read() >= SEUIL_CPT) //test du capteur
goldmas 0:253443d82cba 51 _gobelet_en_place = 1 ;
goldmas 0:253443d82cba 52 else
goldmas 0:253443d82cba 53 _gobelet_en_place = 0 ;
goldmas 0:253443d82cba 54
goldmas 4:4bae30d48662 55 if(_electrovanne.read()) //test de l'electrovanne
smarecar 7:b7dc6201b520 56 etat_pompe = 1 ;
goldmas 4:4bae30d48662 57 else
smarecar 7:b7dc6201b520 58 etat_pompe = 0 ;
goldmas 4:4bae30d48662 59
goldmas 4:4bae30d48662 60 // contenue du char : (cela evite l'utilisation de pointeurs (car on a la flemme))
goldmas 4:4bae30d48662 61 //0000 0 "bit pompe" "bit elec" "bit cpt"
goldmas 4:4bae30d48662 62 return etat_groupe = (etat_pompe << 2) + (etat_electrovanne << 1) + _gobelet_en_place ;
goldmas 4:4bae30d48662 63 }
goldmas 4:4bae30d48662 64
goldmas 4:4bae30d48662 65 void bloc_monopompe::stop_pompe (void)
goldmas 4:4bae30d48662 66 {
goldmas 4:4bae30d48662 67 _pompe = PWM_STOP_POMPE ;
goldmas 4:4bae30d48662 68 _electrovanne = ELEC_OUVERTE ;
goldmas 0:253443d82cba 69 }