para el ventilador

Dependencies:   QEI FastPWM

Revision:
12:3bc2465b034a
Parent:
11:5cb7ae8bd831
--- a/project_defines.h	Thu May 07 03:52:31 2020 +0000
+++ b/project_defines.h	Fri May 15 20:29:30 2020 +0000
@@ -6,9 +6,13 @@
 /*************************** PIN DEFINITION ***********************************/
 /******************************************************************************/
 
-// Switches and buttons
+// Switches, buttons and digital sensors
 #define ENTER_SW_PIN                            PA_15
 #define LIMIT_SW_01_PIN                         PB_7
+#define INSPIRATION_VALVE_HALL_01_PIN           PA_10     
+#define INSPIRATION_VALVE_HALL_02_PIN           PB_3
+#define EXPIRATION_VALVE_HALL_01_PIN            PA_9
+#define EXPIRATION_VALVE_HALL_02_PIN            PC_7
 
 // Rotary encoder
 #define ENCODER_A_SIGNAL                        PA_13
@@ -32,8 +36,13 @@
 #define STEPPER_PULSE_FEEDBACK_PIN              PA_12
 
 // Electric valves
-#define INSPIRATION_VALVE_PIN                   PF_0               
-#define EXPIRATION_VALVE_PIN                    PF_1
+#define INSPIRATION_VALVE_IA_PIN                PB_5
+#define INSPIRATION_VALVE_IB_PIN                PB_4
+#define INSPIRATION_VALVE_EN_PIN                PA_8 
+#define EXPIRATION_VALVE_IA_PIN                 PB_6
+#define EXPIRATION_VALVE_IB_PIN                 PA_7 
+#define EXPIRATION_VALVE_EN_PIN                 PA_6 
+
 
 /******************************************************************************/
 /************************* CONSTANTS AND MACROS *******************************/
@@ -43,6 +52,10 @@
 
 #define ENTER_SW                                0
 #define LIMIT_SW_01                             1
+#define INSPIRATION_VALVE_HALL_01               2    
+#define INSPIRATION_VALVE_HALL_02               3
+#define EXPIRATION_VALVE_HALL_01                4
+#define EXPIRATION_VALVE_HALL_02                5
 
 // ----------------- Defines for the encoder user interface --------------------
 
@@ -51,12 +64,12 @@
 #define PARAMETER_SELECTION_INDEX_LIMIT         3
 #define VOLUME_SETPOINT_INDEX_LIMIT             11
 #define RESP_FREQUENCY_INDEX_LIMIT              21
-#define I_E_RATIO_INDEX_LIMIT                   3
+#define I_E_RATIO_INDEX_LIMIT                   5
 
 #define PARAMETER_SELECTION_INDEX_DEFAULT       0
 #define VOLUME_SETPOINT_INDEX_DEFAULT           5
 #define RESP_FREQUENCY_INDEX_DEFAULT            10
-#define I_E_RATIO_INDEX_DEFAULT                 0
+#define I_E_RATIO_INDEX_DEFAULT                 2
 
 // ------------- Defines for the Nextion display user interface ----------------
 
@@ -136,6 +149,7 @@
 #define PSI_TO_CMH2O_CONSTANT                           70.306957829636f
 #define SPIROMETER_SENSOR_CONSTANT_OXYGEN               36.1f
 #define SPIROMETER_SENSOR_CONSTANT_AIR                  (SPIROMETER_SENSOR_CONSTANT_OXYGEN * 1.08006)
+#define VOLUME_CORRECTION_FACTOR                        34.4409727f
 
 // ----------------------- Defines for digital filters -------------------------
 
@@ -172,6 +186,32 @@
 #define STEPPER_CALIBRATION_FREQUENCY_HZ                200
 #define STEPPER_MAX_FREQUENCY_HZ                        3000
 
+
+// -------------------- Defines for the electric valves ------------------------
+#define INSPIRATION_VALVE_IA                            0
+#define INSPIRATION_VALVE_IB                            1
+#define INSPIRATION_VALVE_EN                            2 
+#define EXPIRATION_VALVE_IA                             3
+#define EXPIRATION_VALVE_IB                             4 
+#define EXPIRATION_VALVE_EN                             5
+
+#define INSPIRATION_VALVE_IS_OPEN                   (!(buttons & (1 << INSPIRATION_VALVE_HALL_02)))
+#define INSPIRATION_VALVE_IS_CLOSED                 (!(buttons & (1 << INSPIRATION_VALVE_HALL_01)))
+#define EXPIRATION_VALVE_IS_OPEN                    (!(buttons & (1 << EXPIRATION_VALVE_HALL_01)))
+#define EXPIRATION_VALVE_IS_CLOSED                  (!(buttons & (1 << EXPIRATION_VALVE_HALL_02))) 
+
+#define INSPIRATION_VALVE_ENABLE()                  valve_control = valve_control | (1 << INSPIRATION_VALVE_EN)
+#define INSPIRATION_VALVE_DISABLE()                 valve_control = valve_control & ~(1 << INSPIRATION_VALVE_EN)
+#define INSPIRATION_VALVE_STOP()                    valve_control = valve_control & ~((1 << INSPIRATION_VALVE_IA) | (1 << INSPIRATION_VALVE_IB))        
+#define INSPIRATION_VALVE_OPEN()                    valve_control = valve_control | (1 << INSPIRATION_VALVE_IA)
+#define INSPIRATION_VALVE_CLOSE()                   valve_control = valve_control | (1 << INSPIRATION_VALVE_IB) 
+#define EXPIRATION_VALVE_ENABLE()                   valve_control = valve_control | (1 << EXPIRATION_VALVE_EN) 
+#define EXPIRATION_VALVE_DISABLE()                  valve_control = valve_control & ~(1 << EXPIRATION_VALVE_EN)            
+#define EXPIRATION_VALVE_STOP()                     valve_control = valve_control & ~((1 << EXPIRATION_VALVE_IA) | (1 << EXPIRATION_VALVE_IB))        
+#define EXPIRATION_VALVE_OPEN()                     valve_control = valve_control | (1 << EXPIRATION_VALVE_IB)
+#define EXPIRATION_VALVE_CLOSE()                    valve_control = valve_control | (1 << EXPIRATION_VALVE_IA)  
+
+
 // ---------------------- Time period for every action -------------------------
 
 #define DEBOUNCE_PERIOD_MS                              10