para el ventilador

Dependencies:   QEI FastPWM

Committer:
miguelangel_2511
Date:
Thu Apr 23 17:05:36 2020 +0000
Revision:
8:208d965a3bd2
Parent:
7:f4e248182d31
Child:
9:95fdcdc0977e
Se agrego la medicion y visualizacion grafica del volumen, el flujo y la presion. Sin embargo, aun no se han aplicado filtros a las seniales medidas.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
miguelangel_2511 0:9d0b9785d3d6 1
miguelangel_2511 0:9d0b9785d3d6 2 #ifndef PROJECT_DEFINES_H_
miguelangel_2511 0:9d0b9785d3d6 3 #define PROJECT_DEFINES_H_
miguelangel_2511 0:9d0b9785d3d6 4
miguelangel_2511 0:9d0b9785d3d6 5 /* File inclusion */
miguelangel_2511 0:9d0b9785d3d6 6
miguelangel_2511 0:9d0b9785d3d6 7 /* Pin definition */
miguelangel_2511 0:9d0b9785d3d6 8
miguelangel_2511 0:9d0b9785d3d6 9 // Switches and buttons
miguelangel_2511 0:9d0b9785d3d6 10 #define ENTER_SW_PIN PA_15
miguelangel_2511 0:9d0b9785d3d6 11 #define LIMIT_SW_01_PIN PB_7
miguelangel_2511 0:9d0b9785d3d6 12 #define GAS_INPUT_SW_PIN PC_13
miguelangel_2511 0:9d0b9785d3d6 13
miguelangel_2511 0:9d0b9785d3d6 14 // Rotary encoder
miguelangel_2511 0:9d0b9785d3d6 15 #define ENCODER_A_SIGNAL PA_13
miguelangel_2511 0:9d0b9785d3d6 16 #define ENCODER_B_SIGNAL PA_14
miguelangel_2511 0:9d0b9785d3d6 17
miguelangel_2511 6:d38287621cca 18 //Nextion display
miguelangel_2511 7:f4e248182d31 19 #define NEXTION_DISPLAY_TX_PIN PC_10
miguelangel_2511 7:f4e248182d31 20 #define NEXTION_DISPLAY_RX_PIN PC_11
miguelangel_2511 7:f4e248182d31 21
miguelangel_2511 7:f4e248182d31 22 // Pressure sensors
miguelangel_2511 8:208d965a3bd2 23 #define PRESSURE_SENSOR_01_SCL_PIN PB_10
miguelangel_2511 8:208d965a3bd2 24 #define PRESSURE_SENSOR_01_SDA_PIN PB_11
miguelangel_2511 8:208d965a3bd2 25 #define PRESSURE_SENSOR_02_SCL_PIN PB_8
miguelangel_2511 8:208d965a3bd2 26 #define PRESSURE_SENSOR_02_SDA_PIN PB_9
miguelangel_2511 0:9d0b9785d3d6 27
miguelangel_2511 0:9d0b9785d3d6 28 //Stepper motor
miguelangel_2511 0:9d0b9785d3d6 29 #define STEPPER_PULSE_PIN PC_8
miguelangel_2511 0:9d0b9785d3d6 30 #define STEPPER_ENABLE_PIN PC_6
miguelangel_2511 0:9d0b9785d3d6 31 #define STEPPER_DIRECTION_PIN PC_5
miguelangel_2511 1:aa5df1878126 32 #define STEPPER_PULSE_FEEDBACK_PIN PA_12
miguelangel_2511 0:9d0b9785d3d6 33
miguelangel_2511 0:9d0b9785d3d6 34
miguelangel_2511 0:9d0b9785d3d6 35 /* Constants and macros */
miguelangel_2511 0:9d0b9785d3d6 36
miguelangel_2511 0:9d0b9785d3d6 37 /* Defines for the switches and buttons */
miguelangel_2511 0:9d0b9785d3d6 38 #define ENTER_SW 0
miguelangel_2511 0:9d0b9785d3d6 39 #define LIMIT_SW_01 1
miguelangel_2511 0:9d0b9785d3d6 40 #define GAS_INPUT_SW 2
miguelangel_2511 0:9d0b9785d3d6 41
miguelangel_2511 8:208d965a3bd2 42 #define DEBOUNCE_PERIOD_MS 10
miguelangel_2511 8:208d965a3bd2 43
miguelangel_2511 0:9d0b9785d3d6 44 /* Defines for the encoder user interface */
miguelangel_2511 0:9d0b9785d3d6 45 #define ENCODER_THRESHOLD 8
miguelangel_2511 0:9d0b9785d3d6 46
miguelangel_2511 0:9d0b9785d3d6 47 #define PARAMETER_SELECTION_INDEX_LIMIT 3
miguelangel_2511 0:9d0b9785d3d6 48 #define VOLUME_SETPOINT_INDEX_LIMIT 11
miguelangel_2511 0:9d0b9785d3d6 49 #define RESP_FREQUENCY_INDEX_LIMIT 21
miguelangel_2511 0:9d0b9785d3d6 50 #define I_E_RATIO_INDEX_LIMIT 3
miguelangel_2511 0:9d0b9785d3d6 51
miguelangel_2511 0:9d0b9785d3d6 52 #define PARAMETER_SELECTION_INDEX_DEFAULT 0
miguelangel_2511 0:9d0b9785d3d6 53 #define VOLUME_SETPOINT_INDEX_DEFAULT 5
miguelangel_2511 0:9d0b9785d3d6 54 #define RESP_FREQUENCY_INDEX_DEFAULT 10
miguelangel_2511 0:9d0b9785d3d6 55 #define I_E_RATIO_INDEX_DEFAULT 0
miguelangel_2511 0:9d0b9785d3d6 56
miguelangel_2511 8:208d965a3bd2 57 #define ENCODER_READ_PERIOD_MS 50
miguelangel_2511 8:208d965a3bd2 58
miguelangel_2511 6:d38287621cca 59 /* Defines for the Nextion user interface */
miguelangel_2511 7:f4e248182d31 60
miguelangel_2511 8:208d965a3bd2 61 #define NEXTION_DISPLAY_BAUD_RATE 115200
miguelangel_2511 7:f4e248182d31 62
miguelangel_2511 7:f4e248182d31 63 #define BLACK 0
miguelangel_2511 7:f4e248182d31 64 #define BLUE 31
miguelangel_2511 7:f4e248182d31 65 #define BROWN 48192
miguelangel_2511 7:f4e248182d31 66 #define GREEN 2016
miguelangel_2511 7:f4e248182d31 67 #define YELLOW 65504
miguelangel_2511 7:f4e248182d31 68 #define RED 63488
miguelangel_2511 7:f4e248182d31 69 #define GRAY 33840
miguelangel_2511 7:f4e248182d31 70 #define WHITE 65535
miguelangel_2511 7:f4e248182d31 71
miguelangel_2511 8:208d965a3bd2 72 #define NORMAL_COLOR WHITE
miguelangel_2511 6:d38287621cca 73 #define SELECT_COLOR BLUE
miguelangel_2511 6:d38287621cca 74 #define ADJUST_COLOR GREEN
miguelangel_2511 6:d38287621cca 75
miguelangel_2511 0:9d0b9785d3d6 76 #define VOLUME_SETPOINT_VALUE_DEFAULT 500
miguelangel_2511 0:9d0b9785d3d6 77 #define RESP_FREQUENCY_VALUE_DEFAULT 20
miguelangel_2511 0:9d0b9785d3d6 78 #define INSPIRATION_TIME_VALUE_DEFAULT 1.0
miguelangel_2511 0:9d0b9785d3d6 79 #define EXPIRATION_TIME_VALUE_DEFAULT 2.0
miguelangel_2511 0:9d0b9785d3d6 80
miguelangel_2511 2:6f618b905d4f 81 #define VOLUME_SETPOINT_MINIMUM_VALUE 250
miguelangel_2511 6:d38287621cca 82 #define VOLUME_SETPOINT_STEP 50
miguelangel_2511 2:6f618b905d4f 83
miguelangel_2511 0:9d0b9785d3d6 84 #define AIR_INPUT 0
miguelangel_2511 0:9d0b9785d3d6 85 #define OXYGEN_INPUT 1
miguelangel_2511 0:9d0b9785d3d6 86
miguelangel_2511 8:208d965a3bd2 87 #define MAIN_SCREEN_DEFAULT_STATE Main_Screen_Cursor_Disable
miguelangel_2511 8:208d965a3bd2 88
miguelangel_2511 8:208d965a3bd2 89 #define VOLUME_WAVEFORM_X0 200
miguelangel_2511 8:208d965a3bd2 90 #define VOLUME_WAVEFORM_Y0 3
miguelangel_2511 8:208d965a3bd2 91 #define VOLUME_WAVEFORM_WIDTH 400
miguelangel_2511 8:208d965a3bd2 92 #define VOLUME_WAVEFORM_HEIGHT 157
miguelangel_2511 8:208d965a3bd2 93
miguelangel_2511 8:208d965a3bd2 94 #define FLOW_WAVEFORM_X0 200
miguelangel_2511 8:208d965a3bd2 95 #define FLOW_WAVEFORM_Y0 162
miguelangel_2511 8:208d965a3bd2 96 #define FLOW_WAVEFORM_WIDTH 400
miguelangel_2511 8:208d965a3bd2 97 #define FLOW_WAVEFORM_HEIGHT 157
miguelangel_2511 8:208d965a3bd2 98
miguelangel_2511 8:208d965a3bd2 99 #define PRESSURE_WAVEFORM_X0 200
miguelangel_2511 8:208d965a3bd2 100 #define PRESSURE_WAVEFORM_Y0 321
miguelangel_2511 8:208d965a3bd2 101 #define PRESSURE_WAVEFORM_WIDTH 400
miguelangel_2511 8:208d965a3bd2 102 #define PRESSURE_WAVEFORM_HEIGHT 157
miguelangel_2511 8:208d965a3bd2 103
miguelangel_2511 8:208d965a3bd2 104 #define SENSOR_WAVEFORM_PLOT_PERIOD_MS 25
miguelangel_2511 8:208d965a3bd2 105 #define SENSOR_DISPLAY_PERIOD_MS 100
miguelangel_2511 1:aa5df1878126 106
miguelangel_2511 7:f4e248182d31 107 /* Defines for the pressure sensors */
miguelangel_2511 7:f4e248182d31 108 #define PRESSURE_SENSOR_I2C_CLK_HZ 200000
miguelangel_2511 7:f4e248182d31 109 #define PRESSURE_SENSOR_01_SLAVE_ADDRESS 0x28
miguelangel_2511 7:f4e248182d31 110 #define PRESSURE_SENSOR_02_SLAVE_ADDRESS 0x28
miguelangel_2511 7:f4e248182d31 111 #define PRESSURE_SENSOR_01_SWA (PRESSURE_SENSOR_01_SLAVE_ADDRESS << 1)
miguelangel_2511 7:f4e248182d31 112 #define PRESSURE_SENSOR_02_SWA (PRESSURE_SENSOR_02_SLAVE_ADDRESS << 1)
miguelangel_2511 7:f4e248182d31 113 #define PRESSURE_SENSOR_01_SRA (PRESSURE_SENSOR_01_SWA | 1)
miguelangel_2511 7:f4e248182d31 114 #define PRESSURE_SENSOR_02_SRA (PRESSURE_SENSOR_02_SWA | 1)
miguelangel_2511 8:208d965a3bd2 115
miguelangel_2511 8:208d965a3bd2 116 #define VOLUME_DISPLAY_THRESHOLD 0.01f
miguelangel_2511 8:208d965a3bd2 117 #define FLOW_DISPLAY_THRESHOLD 0.01f
miguelangel_2511 7:f4e248182d31 118 #define PRESSURE_DISPLAY_THRESHOLD 0.01f
miguelangel_2511 1:aa5df1878126 119
miguelangel_2511 8:208d965a3bd2 120 #define PSI_TO_CMH2O_CONSTANT 70.307
miguelangel_2511 8:208d965a3bd2 121 #define SPIROMETER_SENSOR_CONSTANT 1.0f
miguelangel_2511 8:208d965a3bd2 122
miguelangel_2511 8:208d965a3bd2 123 #define PRESSURE_SENSOR_READ_PERIOD_MS 1
miguelangel_2511 8:208d965a3bd2 124
miguelangel_2511 1:aa5df1878126 125 /* Defines for the stepper motor control */
miguelangel_2511 1:aa5df1878126 126 #define TO_HOME 0
miguelangel_2511 1:aa5df1878126 127 #define TO_AIRBAG 1
miguelangel_2511 1:aa5df1878126 128 #define STEPPER_ENABLED 0
miguelangel_2511 1:aa5df1878126 129 #define STEPPER_DISABLED 1
miguelangel_2511 1:aa5df1878126 130
miguelangel_2511 1:aa5df1878126 131 #define STEPPER_DRIVER_PULSE_MIN_PERIOD_US 100
miguelangel_2511 1:aa5df1878126 132 #define STEPPER_DRIVER_PULSE_HOME_PERIOD_US 1000
miguelangel_2511 1:aa5df1878126 133 #define STEPPER_DRIVER_DEFAULT_PULSE_PERIOD_US 1000
miguelangel_2511 1:aa5df1878126 134
miguelangel_2511 1:aa5df1878126 135 #define STEPPER_DRIVER_MAX_PULSES 6000 // Limite de pasos cuando no encuentra el sensor
miguelangel_2511 1:aa5df1878126 136 #define STEPPER_DRIVER_MIN_PULSES (2*RAMP_STEPS + 2)
miguelangel_2511 1:aa5df1878126 137 #define STEPPER_DRIVER_INSPIRATION_PULSES_DEFAULT 2000
miguelangel_2511 1:aa5df1878126 138
miguelangel_2511 1:aa5df1878126 139 #define STEPPER_DRIVER_DEFAULT_STATE Stepper_Driver_Home_Ramp
miguelangel_2511 1:aa5df1878126 140
miguelangel_2511 1:aa5df1878126 141 #define STEPPER_CALIBRATION_FREQUENCY_HZ 200
miguelangel_2511 6:d38287621cca 142
miguelangel_2511 1:aa5df1878126 143 // Number of steps used for the speed ramp, can be either 50 or 100
miguelangel_2511 1:aa5df1878126 144 #define RAMP_STEPS 50
miguelangel_2511 3:45299e7882b9 145
miguelangel_2511 6:d38287621cca 146 #if RAMP_STEPS == 50
miguelangel_2511 6:d38287621cca 147 #define STEPPER_START_BRAKE_FREQUENCY_HZ 300
miguelangel_2511 6:d38287621cca 148 #elif RAMP_STEPS == 100
miguelangel_2511 6:d38287621cca 149 #define STEPPER_START_BRAKE_FREQUENCY_HZ 500
miguelangel_2511 6:d38287621cca 150 #else
miguelangel_2511 6:d38287621cca 151 #error "Select a valid value for RAMP_STEPS: either 50 or 100"
miguelangel_2511 6:d38287621cca 152 #endif
miguelangel_2511 0:9d0b9785d3d6 153
miguelangel_2511 6:d38287621cca 154 #define STEPPER_MAX_FREQUENCY_HZ 3000
miguelangel_2511 6:d38287621cca 155
miguelangel_2511 6:d38287621cca 156 #define STEPPER_START_BRAKE_PERIOD_US (1000000.0/STEPPER_START_BRAKE_FREQUENCY_HZ)
miguelangel_2511 6:d38287621cca 157 #define SHORT_RAMP_STEPS 25
miguelangel_2511 6:d38287621cca 158
miguelangel_2511 8:208d965a3bd2 159 #define TUNING_FACTOR 1.2
miguelangel_2511 6:d38287621cca 160
miguelangel_2511 6:d38287621cca 161 #endif