carte esclave pompe 2020 V1
Dependencies: mbed ident_crac
class_ventouse.cpp@2:4cc8fa2f64be, 2019-05-07 (annotated)
- Committer:
- marwanesaich
- Date:
- Tue May 07 13:14:29 2019 +0000
- Revision:
- 2:4cc8fa2f64be
- Parent:
- 0:84a8c24e29ae
- Child:
- 3:cf33f9d4d6ff
- Child:
- 4:82c90657da4a
gestion pompes avec automates sans ACK
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marwanesaich | 0:84a8c24e29ae | 1 | #include "class_ventouse.h" |
marwanesaich | 0:84a8c24e29ae | 2 | |
marwanesaich | 2:4cc8fa2f64be | 3 | #define SEUIL 0.30 |
marwanesaich | 0:84a8c24e29ae | 4 | |
marwanesaich | 0:84a8c24e29ae | 5 | |
marwanesaich | 2:4cc8fa2f64be | 6 | Ventouse::Ventouse(PinName pinPompe, PinName pinElectrovanne, PinName pinCapteurPression, char index) : m_pinPompe(pinPompe), |
marwanesaich | 2:4cc8fa2f64be | 7 | m_pinElectrovanne(pinElectrovanne), m_pinCapteurPression(pinCapteurPression), m_index(index) |
marwanesaich | 0:84a8c24e29ae | 8 | { |
marwanesaich | 0:84a8c24e29ae | 9 | m_pompe = new PwmOut(m_pinPompe); |
marwanesaich | 0:84a8c24e29ae | 10 | m_electrovanne = new PwmOut(m_pinElectrovanne); |
marwanesaich | 0:84a8c24e29ae | 11 | m_pression = new AnalogIn(m_pinCapteurPression); |
marwanesaich | 0:84a8c24e29ae | 12 | |
marwanesaich | 0:84a8c24e29ae | 13 | m_pompe->period_us(50); |
marwanesaich | 0:84a8c24e29ae | 14 | m_electrovanne->period_us(50); |
marwanesaich | 0:84a8c24e29ae | 15 | |
marwanesaich | 0:84a8c24e29ae | 16 | m_pompe->write(0); |
marwanesaich | 0:84a8c24e29ae | 17 | m_electrovanne->write(0); |
marwanesaich | 2:4cc8fa2f64be | 18 | |
marwanesaich | 2:4cc8fa2f64be | 19 | flag_attraper = 0; |
marwanesaich | 2:4cc8fa2f64be | 20 | flag_relacher = 0; |
marwanesaich | 2:4cc8fa2f64be | 21 | |
marwanesaich | 2:4cc8fa2f64be | 22 | etat = Attente; |
marwanesaich | 2:4cc8fa2f64be | 23 | m_ack = 0; |
marwanesaich | 2:4cc8fa2f64be | 24 | } |
marwanesaich | 2:4cc8fa2f64be | 25 | |
marwanesaich | 2:4cc8fa2f64be | 26 | void Ventouse::automate() |
marwanesaich | 2:4cc8fa2f64be | 27 | { |
marwanesaich | 2:4cc8fa2f64be | 28 | switch(etat) |
marwanesaich | 2:4cc8fa2f64be | 29 | { |
marwanesaich | 2:4cc8fa2f64be | 30 | case Attente : |
marwanesaich | 2:4cc8fa2f64be | 31 | if(flag_attraper) |
marwanesaich | 2:4cc8fa2f64be | 32 | { |
marwanesaich | 2:4cc8fa2f64be | 33 | attraper(); |
marwanesaich | 2:4cc8fa2f64be | 34 | etat = Attraper; |
marwanesaich | 2:4cc8fa2f64be | 35 | } |
marwanesaich | 2:4cc8fa2f64be | 36 | break; |
marwanesaich | 2:4cc8fa2f64be | 37 | |
marwanesaich | 2:4cc8fa2f64be | 38 | case Attraper : |
marwanesaich | 2:4cc8fa2f64be | 39 | if(getPression()) |
marwanesaich | 2:4cc8fa2f64be | 40 | { |
marwanesaich | 2:4cc8fa2f64be | 41 | etat = Attraper_ok; |
marwanesaich | 2:4cc8fa2f64be | 42 | }else if(flag_relacher) |
marwanesaich | 2:4cc8fa2f64be | 43 | { |
marwanesaich | 2:4cc8fa2f64be | 44 | relacher(); |
marwanesaich | 2:4cc8fa2f64be | 45 | etat = Relacher; |
marwanesaich | 2:4cc8fa2f64be | 46 | } |
marwanesaich | 2:4cc8fa2f64be | 47 | break; |
marwanesaich | 2:4cc8fa2f64be | 48 | |
marwanesaich | 2:4cc8fa2f64be | 49 | case Attraper_ok : |
marwanesaich | 2:4cc8fa2f64be | 50 | if(flag_relacher) |
marwanesaich | 2:4cc8fa2f64be | 51 | { |
marwanesaich | 2:4cc8fa2f64be | 52 | relacher(); |
marwanesaich | 2:4cc8fa2f64be | 53 | wait(0.5); |
marwanesaich | 2:4cc8fa2f64be | 54 | etat = Relacher; |
marwanesaich | 2:4cc8fa2f64be | 55 | } |
marwanesaich | 2:4cc8fa2f64be | 56 | break; |
marwanesaich | 2:4cc8fa2f64be | 57 | |
marwanesaich | 2:4cc8fa2f64be | 58 | case Relacher : |
marwanesaich | 2:4cc8fa2f64be | 59 | if(!getPression()) |
marwanesaich | 2:4cc8fa2f64be | 60 | { |
marwanesaich | 2:4cc8fa2f64be | 61 | m_electrovanne->write(0.0); |
marwanesaich | 2:4cc8fa2f64be | 62 | etat = Attente; |
marwanesaich | 2:4cc8fa2f64be | 63 | } |
marwanesaich | 2:4cc8fa2f64be | 64 | break; |
marwanesaich | 2:4cc8fa2f64be | 65 | |
marwanesaich | 2:4cc8fa2f64be | 66 | } |
marwanesaich | 2:4cc8fa2f64be | 67 | } |
marwanesaich | 2:4cc8fa2f64be | 68 | |
marwanesaich | 2:4cc8fa2f64be | 69 | |
marwanesaich | 2:4cc8fa2f64be | 70 | void Ventouse::action(bool action) |
marwanesaich | 2:4cc8fa2f64be | 71 | { |
marwanesaich | 2:4cc8fa2f64be | 72 | flag_attraper = action; |
marwanesaich | 2:4cc8fa2f64be | 73 | flag_relacher = !action; |
marwanesaich | 0:84a8c24e29ae | 74 | } |
marwanesaich | 0:84a8c24e29ae | 75 | |
marwanesaich | 0:84a8c24e29ae | 76 | void Ventouse::attraper() |
marwanesaich | 0:84a8c24e29ae | 77 | { |
marwanesaich | 0:84a8c24e29ae | 78 | m_pompe->write(0.5); |
marwanesaich | 0:84a8c24e29ae | 79 | m_electrovanne->write(0.0); |
marwanesaich | 0:84a8c24e29ae | 80 | |
marwanesaich | 0:84a8c24e29ae | 81 | } |
marwanesaich | 0:84a8c24e29ae | 82 | |
marwanesaich | 0:84a8c24e29ae | 83 | void Ventouse::relacher() |
marwanesaich | 0:84a8c24e29ae | 84 | { |
marwanesaich | 0:84a8c24e29ae | 85 | m_pompe->write(0.0); |
marwanesaich | 0:84a8c24e29ae | 86 | m_electrovanne->write(1.0); |
marwanesaich | 0:84a8c24e29ae | 87 | |
marwanesaich | 0:84a8c24e29ae | 88 | } |
marwanesaich | 0:84a8c24e29ae | 89 | |
marwanesaich | 2:4cc8fa2f64be | 90 | bool Ventouse::getPression() |
marwanesaich | 0:84a8c24e29ae | 91 | { |
marwanesaich | 0:84a8c24e29ae | 92 | if(m_pression->read() > SEUIL){ |
marwanesaich | 0:84a8c24e29ae | 93 | return 1; |
marwanesaich | 0:84a8c24e29ae | 94 | } |
marwanesaich | 0:84a8c24e29ae | 95 | else{ |
marwanesaich | 0:84a8c24e29ae | 96 | return 0; |
marwanesaich | 0:84a8c24e29ae | 97 | } |
marwanesaich | 0:84a8c24e29ae | 98 | |
marwanesaich | 0:84a8c24e29ae | 99 | } |
marwanesaich | 0:84a8c24e29ae | 100 | |
marwanesaich | 2:4cc8fa2f64be | 101 | bool Ventouse::getPompe() |
marwanesaich | 0:84a8c24e29ae | 102 | { |
marwanesaich | 0:84a8c24e29ae | 103 | if(m_pompe->read() > 0){ |
marwanesaich | 0:84a8c24e29ae | 104 | return 1; |
marwanesaich | 0:84a8c24e29ae | 105 | } |
marwanesaich | 0:84a8c24e29ae | 106 | else{ |
marwanesaich | 0:84a8c24e29ae | 107 | return 0; |
marwanesaich | 0:84a8c24e29ae | 108 | } |
marwanesaich | 0:84a8c24e29ae | 109 | } |
marwanesaich | 0:84a8c24e29ae | 110 | |
marwanesaich | 0:84a8c24e29ae | 111 | void Ventouse::setPompe(float val) |
marwanesaich | 0:84a8c24e29ae | 112 | { |
marwanesaich | 0:84a8c24e29ae | 113 | m_pompe->write(val); |
marwanesaich | 0:84a8c24e29ae | 114 | } |
marwanesaich | 0:84a8c24e29ae | 115 | |
marwanesaich | 0:84a8c24e29ae | 116 | void Ventouse::setElectrovanne(float val) |
marwanesaich | 0:84a8c24e29ae | 117 | { |
marwanesaich | 0:84a8c24e29ae | 118 | m_electrovanne->write(val); |
marwanesaich | 0:84a8c24e29ae | 119 | } |
marwanesaich | 0:84a8c24e29ae | 120 | |
marwanesaich | 0:84a8c24e29ae | 121 | |
marwanesaich | 0:84a8c24e29ae | 122 |