carte esclave pompe 2020 V1

Dependencies:   mbed ident_crac

Revision:
5:176e7353ba1c
Parent:
4:82c90657da4a
Child:
6:fda992188a2f
--- a/class_ventouse.cpp	Wed May 08 17:46:13 2019 +0000
+++ b/class_ventouse.cpp	Wed May 15 09:09:00 2019 +0000
@@ -5,6 +5,25 @@
 #define SEUIL 0.30
 
 
+Ventouse::Ventouse(PinName pinPompe, PinName pinCapteurPression, char index) : m_pinPompe(pinPompe),
+m_pinCapteurPression(pinCapteurPression), m_index(index)
+{
+    m_pompe = new PwmOut(m_pinPompe);
+    m_pression = new AnalogIn(m_pinCapteurPression);
+    
+    m_pompe->period_us(50);
+    
+    m_pompe->write(0);
+    
+    flag_attraper = 0;
+    flag_relacher = 0;
+    
+    etat = Attente; 
+    m_ack = 0;
+    flag_electrovanne = 0;
+}
+
+
 Ventouse::Ventouse(PinName pinPompe, PinName pinElectrovanne, PinName pinCapteurPression, char index) : m_pinPompe(pinPompe),
 m_pinElectrovanne(pinElectrovanne), m_pinCapteurPression(pinCapteurPression), m_index(index)
 {
@@ -23,6 +42,7 @@
     
     etat = Attente; 
     m_ack = 0;
+    flag_electrovanne = 1;
 }
 
 void Ventouse::automate()
@@ -53,7 +73,6 @@
             if(flag_relacher)
             {
                 relacher();
-                wait(0.5);
                 etat = Relacher;
             }
             break;
@@ -62,7 +81,7 @@
             if(!getPression())
             {
                 can.write(CANMessage(HACHEUR_RELEASE_ATOM_ACK,&m_index,1));
-                m_electrovanne->write(0.0);
+                if(flag_electrovanne) m_electrovanne->write(0.0);
                 etat = Attente;  
             }
             break;
@@ -79,15 +98,15 @@
 
 void Ventouse::attraper()
 {
-    m_pompe->write(0.5);
-    m_electrovanne->write(0.0);
+    m_pompe->write(0.7);
+    if(flag_electrovanne) m_electrovanne->write(0.0);
 
 }
 
 void Ventouse::relacher()
 {
     m_pompe->write(0.0);
-    m_electrovanne->write(1.0);
+    if(flag_electrovanne) m_electrovanne->write(1.0);
 
 }
 
@@ -119,7 +138,7 @@
 
 void Ventouse::setElectrovanne(float val)
 {
-    m_electrovanne->write(val);
+    if(flag_electrovanne)m_electrovanne->write(val);
 }