Miguel Angel Caycho
/
Pruebas_Ventilador_Eplimin_01_Backup
para el ventilador
project_defines.h@10:b2d87404309a, 2020-04-27 (annotated)
- Committer:
- miguelangel_2511
- Date:
- Mon Apr 27 19:52:02 2020 +0000
- Revision:
- 10:b2d87404309a
- Parent:
- 9:95fdcdc0977e
- Child:
- 11:5cb7ae8bd831
Ventilador ajustado al nuevo sistema mecanico (con mordaza) y con el sensor de flujo (espirometria) calibrado de forma aproximada. Tabien se ha configurado el baud rate a su maximo valor funcional (256000 bps).
Who changed what in which revision?
User | Revision | Line number | New 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 | 10:b2d87404309a | 57 | #define ENCODER_READ_PERIOD_MS 10 |
miguelangel_2511 | 8:208d965a3bd2 | 58 | |
miguelangel_2511 | 6:d38287621cca | 59 | /* Defines for the Nextion user interface */ |
miguelangel_2511 | 7:f4e248182d31 | 60 | |
miguelangel_2511 | 10:b2d87404309a | 61 | #define NEXTION_DISPLAY_BAUD_RATE 256000 |
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 | 9:95fdcdc0977e | 116 | #define PRESSURE_SENSOR_OUTPUT_MAX 14745 |
miguelangel_2511 | 9:95fdcdc0977e | 117 | #define PRESSURE_SENSOR_OUTPUT_MIN 1638 |
miguelangel_2511 | 10:b2d87404309a | 118 | #define PRESSURE_SENSOR_PRESSURE_MAX 1.0f |
miguelangel_2511 | 9:95fdcdc0977e | 119 | #define PRESSURE_SENSOR_PRESSURE_MIN 0.0f |
miguelangel_2511 | 9:95fdcdc0977e | 120 | #define PRESSURE_SENSOR_OFFSET_PSI 0.0284467f |
miguelangel_2511 | 9:95fdcdc0977e | 121 | |
miguelangel_2511 | 9:95fdcdc0977e | 122 | #define VOLUME_DISPLAY_THRESHOLD 0.1f |
miguelangel_2511 | 8:208d965a3bd2 | 123 | #define FLOW_DISPLAY_THRESHOLD 0.01f |
miguelangel_2511 | 9:95fdcdc0977e | 124 | #define PRESSURE_DISPLAY_THRESHOLD 0.001f |
miguelangel_2511 | 1:aa5df1878126 | 125 | |
miguelangel_2511 | 9:95fdcdc0977e | 126 | #define PSI_TO_CMH2O_CONSTANT 70.306957829636f |
miguelangel_2511 | 10:b2d87404309a | 127 | #define SPIROMETER_SENSOR_CONSTANT 476.9584277f |
miguelangel_2511 | 8:208d965a3bd2 | 128 | |
miguelangel_2511 | 8:208d965a3bd2 | 129 | #define PRESSURE_SENSOR_READ_PERIOD_MS 1 |
miguelangel_2511 | 9:95fdcdc0977e | 130 | #define LPF_CUTOFF_FREQ_HZ 10.0f |
miguelangel_2511 | 9:95fdcdc0977e | 131 | #define LPF_RC_CONSTANT_SEC (1/(6.2832*LPF_CUTOFF_FREQ_HZ)) |
miguelangel_2511 | 9:95fdcdc0977e | 132 | |
miguelangel_2511 | 8:208d965a3bd2 | 133 | |
miguelangel_2511 | 1:aa5df1878126 | 134 | /* Defines for the stepper motor control */ |
miguelangel_2511 | 1:aa5df1878126 | 135 | #define TO_HOME 0 |
miguelangel_2511 | 1:aa5df1878126 | 136 | #define TO_AIRBAG 1 |
miguelangel_2511 | 1:aa5df1878126 | 137 | #define STEPPER_ENABLED 0 |
miguelangel_2511 | 1:aa5df1878126 | 138 | #define STEPPER_DISABLED 1 |
miguelangel_2511 | 1:aa5df1878126 | 139 | |
miguelangel_2511 | 1:aa5df1878126 | 140 | #define STEPPER_DRIVER_PULSE_MIN_PERIOD_US 100 |
miguelangel_2511 | 1:aa5df1878126 | 141 | #define STEPPER_DRIVER_PULSE_HOME_PERIOD_US 1000 |
miguelangel_2511 | 1:aa5df1878126 | 142 | #define STEPPER_DRIVER_DEFAULT_PULSE_PERIOD_US 1000 |
miguelangel_2511 | 1:aa5df1878126 | 143 | |
miguelangel_2511 | 10:b2d87404309a | 144 | #define STEPPER_DRIVER_MAX_PULSES 200 // Limite de pasos cuando no encuentra el sensor |
miguelangel_2511 | 1:aa5df1878126 | 145 | #define STEPPER_DRIVER_MIN_PULSES (2*RAMP_STEPS + 2) |
miguelangel_2511 | 1:aa5df1878126 | 146 | #define STEPPER_DRIVER_INSPIRATION_PULSES_DEFAULT 2000 |
miguelangel_2511 | 1:aa5df1878126 | 147 | |
miguelangel_2511 | 1:aa5df1878126 | 148 | #define STEPPER_DRIVER_DEFAULT_STATE Stepper_Driver_Home_Ramp |
miguelangel_2511 | 1:aa5df1878126 | 149 | |
miguelangel_2511 | 1:aa5df1878126 | 150 | #define STEPPER_CALIBRATION_FREQUENCY_HZ 200 |
miguelangel_2511 | 6:d38287621cca | 151 | |
miguelangel_2511 | 1:aa5df1878126 | 152 | // Number of steps used for the speed ramp, can be either 50 or 100 |
miguelangel_2511 | 1:aa5df1878126 | 153 | #define RAMP_STEPS 50 |
miguelangel_2511 | 3:45299e7882b9 | 154 | |
miguelangel_2511 | 6:d38287621cca | 155 | #if RAMP_STEPS == 50 |
miguelangel_2511 | 6:d38287621cca | 156 | #define STEPPER_START_BRAKE_FREQUENCY_HZ 300 |
miguelangel_2511 | 6:d38287621cca | 157 | #elif RAMP_STEPS == 100 |
miguelangel_2511 | 6:d38287621cca | 158 | #define STEPPER_START_BRAKE_FREQUENCY_HZ 500 |
miguelangel_2511 | 6:d38287621cca | 159 | #else |
miguelangel_2511 | 6:d38287621cca | 160 | #error "Select a valid value for RAMP_STEPS: either 50 or 100" |
miguelangel_2511 | 6:d38287621cca | 161 | #endif |
miguelangel_2511 | 0:9d0b9785d3d6 | 162 | |
miguelangel_2511 | 6:d38287621cca | 163 | #define STEPPER_MAX_FREQUENCY_HZ 3000 |
miguelangel_2511 | 6:d38287621cca | 164 | |
miguelangel_2511 | 6:d38287621cca | 165 | #define STEPPER_START_BRAKE_PERIOD_US (1000000.0/STEPPER_START_BRAKE_FREQUENCY_HZ) |
miguelangel_2511 | 6:d38287621cca | 166 | #define SHORT_RAMP_STEPS 25 |
miguelangel_2511 | 6:d38287621cca | 167 | |
miguelangel_2511 | 8:208d965a3bd2 | 168 | #define TUNING_FACTOR 1.2 |
miguelangel_2511 | 6:d38287621cca | 169 | |
miguelangel_2511 | 6:d38287621cca | 170 | #endif |