pachas

Dependencies:   mbed QEI FastPWM

Committer:
miguelangel_2511
Date:
Mon Apr 20 21:58:36 2020 +0000
Revision:
7:f4e248182d31
Parent:
6:d38287621cca
Child:
8:208d965a3bd2
Se agregaron sensores de presion, cuyos valores medidos son mostrados en la pantalla.

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 7:f4e248182d31 23 #define PRESSURE_SENSOR_01_SDA_PIN PB_9
miguelangel_2511 7:f4e248182d31 24 #define PRESSURE_SENSOR_01_SCL_PIN PB_8
miguelangel_2511 7:f4e248182d31 25
miguelangel_2511 7:f4e248182d31 26 #define PRESSURE_SENSOR_02_SDA_PIN PB_10
miguelangel_2511 7:f4e248182d31 27 #define PRESSURE_SENSOR_02_SCL_PIN PB_11
miguelangel_2511 0:9d0b9785d3d6 28
miguelangel_2511 0:9d0b9785d3d6 29 //Stepper motor
miguelangel_2511 0:9d0b9785d3d6 30 #define STEPPER_PULSE_PIN PC_8
miguelangel_2511 0:9d0b9785d3d6 31 #define STEPPER_ENABLE_PIN PC_6
miguelangel_2511 0:9d0b9785d3d6 32 #define STEPPER_DIRECTION_PIN PC_5
miguelangel_2511 1:aa5df1878126 33 #define STEPPER_PULSE_FEEDBACK_PIN PA_12
miguelangel_2511 0:9d0b9785d3d6 34
miguelangel_2511 0:9d0b9785d3d6 35
miguelangel_2511 0:9d0b9785d3d6 36 /* Constants and macros */
miguelangel_2511 0:9d0b9785d3d6 37
miguelangel_2511 0:9d0b9785d3d6 38 /* Defines for the switches and buttons */
miguelangel_2511 0:9d0b9785d3d6 39 #define ENTER_SW 0
miguelangel_2511 0:9d0b9785d3d6 40 #define LIMIT_SW_01 1
miguelangel_2511 0:9d0b9785d3d6 41 #define GAS_INPUT_SW 2
miguelangel_2511 0:9d0b9785d3d6 42
miguelangel_2511 0:9d0b9785d3d6 43 /* Defines for the encoder user interface */
miguelangel_2511 0:9d0b9785d3d6 44 #define ENCODER_THRESHOLD 8
miguelangel_2511 0:9d0b9785d3d6 45
miguelangel_2511 0:9d0b9785d3d6 46 #define PARAMETER_SELECTION_INDEX_LIMIT 3
miguelangel_2511 0:9d0b9785d3d6 47 #define VOLUME_SETPOINT_INDEX_LIMIT 11
miguelangel_2511 0:9d0b9785d3d6 48 #define RESP_FREQUENCY_INDEX_LIMIT 21
miguelangel_2511 0:9d0b9785d3d6 49 #define I_E_RATIO_INDEX_LIMIT 3
miguelangel_2511 0:9d0b9785d3d6 50
miguelangel_2511 0:9d0b9785d3d6 51 #define PARAMETER_SELECTION_INDEX_DEFAULT 0
miguelangel_2511 0:9d0b9785d3d6 52 #define VOLUME_SETPOINT_INDEX_DEFAULT 5
miguelangel_2511 0:9d0b9785d3d6 53 #define RESP_FREQUENCY_INDEX_DEFAULT 10
miguelangel_2511 0:9d0b9785d3d6 54 #define I_E_RATIO_INDEX_DEFAULT 0
miguelangel_2511 0:9d0b9785d3d6 55
miguelangel_2511 6:d38287621cca 56 /* Defines for the Nextion user interface */
miguelangel_2511 7:f4e248182d31 57
miguelangel_2511 7:f4e248182d31 58 #define NEXTION_DISPLAY_BAUD_RATE 9600
miguelangel_2511 7:f4e248182d31 59
miguelangel_2511 7:f4e248182d31 60 #define BLACK 0
miguelangel_2511 7:f4e248182d31 61 #define BLUE 31
miguelangel_2511 7:f4e248182d31 62 #define BROWN 48192
miguelangel_2511 7:f4e248182d31 63 #define GREEN 2016
miguelangel_2511 7:f4e248182d31 64 #define YELLOW 65504
miguelangel_2511 7:f4e248182d31 65 #define RED 63488
miguelangel_2511 7:f4e248182d31 66 #define GRAY 33840
miguelangel_2511 7:f4e248182d31 67 #define WHITE 65535
miguelangel_2511 7:f4e248182d31 68
miguelangel_2511 6:d38287621cca 69 #define NORMAL_COLOR BLACK
miguelangel_2511 6:d38287621cca 70 #define SELECT_COLOR BLUE
miguelangel_2511 6:d38287621cca 71 #define ADJUST_COLOR GREEN
miguelangel_2511 6:d38287621cca 72
miguelangel_2511 6:d38287621cca 73 //#define BACKGROUND_COLOR Black
miguelangel_2511 6:d38287621cca 74 //#define INDICATOR_BOX_LINE_COLOR Green
miguelangel_2511 6:d38287621cca 75 //#define INDICATOR_HEADER_TEXT_COLOR Yellow
miguelangel_2511 6:d38287621cca 76 //#define INDICATOR_VALUE_TEXT_COLOR White
miguelangel_2511 6:d38287621cca 77 //#define INDICATOR_UNITS_TEXT_COLOR White
miguelangel_2511 6:d38287621cca 78 //#define PARAMETER_SELECTION_BOX_COLOR Yellow
miguelangel_2511 6:d38287621cca 79 //#define PARAMETER_ADJUST_TEXT_COLOR Green
miguelangel_2511 0:9d0b9785d3d6 80
miguelangel_2511 0:9d0b9785d3d6 81 #define HEADERS_ROW1_Y_POS 20
miguelangel_2511 0:9d0b9785d3d6 82 #define HEADERS_ROW2_Y_POS 180
miguelangel_2511 0:9d0b9785d3d6 83 #define UNITS_ROW1_Y_POS 103
miguelangel_2511 0:9d0b9785d3d6 84 #define UNITS_ROW2_Y_POS 263
miguelangel_2511 0:9d0b9785d3d6 85 #define VALUES_ROW1_Y_POS 60
miguelangel_2511 0:9d0b9785d3d6 86 #define VALUES_ROW2_Y_POS 220
miguelangel_2511 0:9d0b9785d3d6 87
miguelangel_2511 0:9d0b9785d3d6 88 #define VOLUME_SETPOINT_VALUE_DEFAULT 500
miguelangel_2511 0:9d0b9785d3d6 89 #define RESP_FREQUENCY_VALUE_DEFAULT 20
miguelangel_2511 0:9d0b9785d3d6 90 #define INSPIRATION_TIME_VALUE_DEFAULT 1.0
miguelangel_2511 0:9d0b9785d3d6 91 #define EXPIRATION_TIME_VALUE_DEFAULT 2.0
miguelangel_2511 0:9d0b9785d3d6 92
miguelangel_2511 2:6f618b905d4f 93 #define VOLUME_SETPOINT_MINIMUM_VALUE 250
miguelangel_2511 6:d38287621cca 94 #define VOLUME_SETPOINT_STEP 50
miguelangel_2511 2:6f618b905d4f 95
miguelangel_2511 0:9d0b9785d3d6 96 #define AIR_INPUT 0
miguelangel_2511 0:9d0b9785d3d6 97 #define OXYGEN_INPUT 1
miguelangel_2511 0:9d0b9785d3d6 98
miguelangel_2511 4:d42e1953243c 99 #define MAIN_SCREEN_DEFAULT_STATE Main_Screen_Cursor_Disable
miguelangel_2511 1:aa5df1878126 100
miguelangel_2511 7:f4e248182d31 101 /* Defines for the pressure sensors */
miguelangel_2511 7:f4e248182d31 102 #define PRESSURE_SENSOR_I2C_CLK_HZ 200000
miguelangel_2511 7:f4e248182d31 103 #define PRESSURE_SENSOR_01_SLAVE_ADDRESS 0x28
miguelangel_2511 7:f4e248182d31 104 #define PRESSURE_SENSOR_02_SLAVE_ADDRESS 0x28
miguelangel_2511 7:f4e248182d31 105 #define PRESSURE_SENSOR_01_SWA (PRESSURE_SENSOR_01_SLAVE_ADDRESS << 1)
miguelangel_2511 7:f4e248182d31 106 #define PRESSURE_SENSOR_02_SWA (PRESSURE_SENSOR_02_SLAVE_ADDRESS << 1)
miguelangel_2511 7:f4e248182d31 107 #define PRESSURE_SENSOR_01_SRA (PRESSURE_SENSOR_01_SWA | 1)
miguelangel_2511 7:f4e248182d31 108 #define PRESSURE_SENSOR_02_SRA (PRESSURE_SENSOR_02_SWA | 1)
miguelangel_2511 7:f4e248182d31 109 #define PRESSURE_DISPLAY_THRESHOLD 0.01f
miguelangel_2511 1:aa5df1878126 110
miguelangel_2511 1:aa5df1878126 111 /* Defines for the stepper motor control */
miguelangel_2511 1:aa5df1878126 112 #define TO_HOME 0
miguelangel_2511 1:aa5df1878126 113 #define TO_AIRBAG 1
miguelangel_2511 1:aa5df1878126 114 #define STEPPER_ENABLED 0
miguelangel_2511 1:aa5df1878126 115 #define STEPPER_DISABLED 1
miguelangel_2511 1:aa5df1878126 116
miguelangel_2511 1:aa5df1878126 117 #define STEPPER_DRIVER_PULSE_MIN_PERIOD_US 100
miguelangel_2511 1:aa5df1878126 118 #define STEPPER_DRIVER_PULSE_HOME_PERIOD_US 1000
miguelangel_2511 1:aa5df1878126 119 #define STEPPER_DRIVER_DEFAULT_PULSE_PERIOD_US 1000
miguelangel_2511 1:aa5df1878126 120
miguelangel_2511 1:aa5df1878126 121 #define STEPPER_DRIVER_MAX_PULSES 6000 // Limite de pasos cuando no encuentra el sensor
miguelangel_2511 1:aa5df1878126 122 #define STEPPER_DRIVER_MIN_PULSES (2*RAMP_STEPS + 2)
miguelangel_2511 1:aa5df1878126 123 #define STEPPER_DRIVER_INSPIRATION_PULSES_DEFAULT 2000
miguelangel_2511 1:aa5df1878126 124
miguelangel_2511 1:aa5df1878126 125 #define STEPPER_DRIVER_DEFAULT_STATE Stepper_Driver_Home_Ramp
miguelangel_2511 1:aa5df1878126 126
miguelangel_2511 1:aa5df1878126 127 #define STEPPER_CALIBRATION_FREQUENCY_HZ 200
miguelangel_2511 6:d38287621cca 128
miguelangel_2511 1:aa5df1878126 129 // Number of steps used for the speed ramp, can be either 50 or 100
miguelangel_2511 1:aa5df1878126 130 #define RAMP_STEPS 50
miguelangel_2511 3:45299e7882b9 131
miguelangel_2511 6:d38287621cca 132 #if RAMP_STEPS == 50
miguelangel_2511 6:d38287621cca 133 #define STEPPER_START_BRAKE_FREQUENCY_HZ 300
miguelangel_2511 6:d38287621cca 134 #elif RAMP_STEPS == 100
miguelangel_2511 6:d38287621cca 135 #define STEPPER_START_BRAKE_FREQUENCY_HZ 500
miguelangel_2511 6:d38287621cca 136 #else
miguelangel_2511 6:d38287621cca 137 #error "Select a valid value for RAMP_STEPS: either 50 or 100"
miguelangel_2511 6:d38287621cca 138 #endif
miguelangel_2511 0:9d0b9785d3d6 139
miguelangel_2511 6:d38287621cca 140 #define STEPPER_MAX_FREQUENCY_HZ 3000
miguelangel_2511 6:d38287621cca 141
miguelangel_2511 6:d38287621cca 142 #define STEPPER_START_BRAKE_PERIOD_US (1000000.0/STEPPER_START_BRAKE_FREQUENCY_HZ)
miguelangel_2511 6:d38287621cca 143 #define SHORT_RAMP_STEPS 25
miguelangel_2511 6:d38287621cca 144
miguelangel_2511 6:d38287621cca 145 #define TUNING_FACTOR 1.25
miguelangel_2511 6:d38287621cca 146
miguelangel_2511 6:d38287621cca 147 #endif