Miguel Angel Caycho
/
Pruebas_Ventilador_Eplimin_01_Backup
para el ventilador
pressure_sensors.cpp@7:f4e248182d31, 2020-04-20 (annotated)
- Committer:
- miguelangel_2511
- Date:
- Mon Apr 20 21:58:36 2020 +0000
- Revision:
- 7:f4e248182d31
- Child:
- 8:208d965a3bd2
Se agregaron sensores de presion, cuyos valores medidos son mostrados en la pantalla.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
miguelangel_2511 | 7:f4e248182d31 | 1 | |
miguelangel_2511 | 7:f4e248182d31 | 2 | #include "mbed.h" |
miguelangel_2511 | 7:f4e248182d31 | 3 | #include "stdint.h" |
miguelangel_2511 | 7:f4e248182d31 | 4 | #include "project_defines.h" |
miguelangel_2511 | 7:f4e248182d31 | 5 | #include "pressure_sensors.h" |
miguelangel_2511 | 7:f4e248182d31 | 6 | |
miguelangel_2511 | 7:f4e248182d31 | 7 | |
miguelangel_2511 | 7:f4e248182d31 | 8 | /* Object definition */ |
miguelangel_2511 | 7:f4e248182d31 | 9 | I2C pressure_sensor_01(PRESSURE_SENSOR_01_SDA_PIN, PRESSURE_SENSOR_01_SCL_PIN); |
miguelangel_2511 | 7:f4e248182d31 | 10 | I2C pressure_sensor_02(PRESSURE_SENSOR_02_SDA_PIN, PRESSURE_SENSOR_02_SCL_PIN); |
miguelangel_2511 | 7:f4e248182d31 | 11 | |
miguelangel_2511 | 7:f4e248182d31 | 12 | /* Global variable definition */ |
miguelangel_2511 | 7:f4e248182d31 | 13 | uint16_t pressure_01_bin, pressure_02_bin, diff_pressure_bin; |
miguelangel_2511 | 7:f4e248182d31 | 14 | float pressure_01_psi, pressure_02_psi; |
miguelangel_2511 | 7:f4e248182d31 | 15 | float diff_pressure_psi; |
miguelangel_2511 | 7:f4e248182d31 | 16 | |
miguelangel_2511 | 7:f4e248182d31 | 17 | char sensor_read_data_buffer[2]; |
miguelangel_2511 | 7:f4e248182d31 | 18 | |
miguelangel_2511 | 7:f4e248182d31 | 19 | /* Function definition */ |
miguelangel_2511 | 7:f4e248182d31 | 20 | |
miguelangel_2511 | 7:f4e248182d31 | 21 | void Pressure_Sensors_Initialize(void){ |
miguelangel_2511 | 7:f4e248182d31 | 22 | pressure_sensor_01.frequency(PRESSURE_SENSOR_I2C_CLK_HZ ); |
miguelangel_2511 | 7:f4e248182d31 | 23 | pressure_sensor_02.frequency(PRESSURE_SENSOR_I2C_CLK_HZ ); |
miguelangel_2511 | 7:f4e248182d31 | 24 | } |
miguelangel_2511 | 7:f4e248182d31 | 25 | |
miguelangel_2511 | 7:f4e248182d31 | 26 | |
miguelangel_2511 | 7:f4e248182d31 | 27 | void Pressure_Sensors_Read(void){ |
miguelangel_2511 | 7:f4e248182d31 | 28 | |
miguelangel_2511 | 7:f4e248182d31 | 29 | /* Read binary values */ |
miguelangel_2511 | 7:f4e248182d31 | 30 | pressure_sensor_01.read(PRESSURE_SENSOR_01_SRA, sensor_read_data_buffer, 2); |
miguelangel_2511 | 7:f4e248182d31 | 31 | pressure_01_bin = ((sensor_read_data_buffer[0] << 8) | sensor_read_data_buffer[1]) & 0x3FFF; |
miguelangel_2511 | 7:f4e248182d31 | 32 | pressure_sensor_02.read(PRESSURE_SENSOR_02_SRA, sensor_read_data_buffer, 2); |
miguelangel_2511 | 7:f4e248182d31 | 33 | pressure_02_bin = ((sensor_read_data_buffer[0] << 8) | sensor_read_data_buffer[1]) & 0x3FFF; |
miguelangel_2511 | 7:f4e248182d31 | 34 | diff_pressure_bin = pressure_01_bin - pressure_02_bin; |
miguelangel_2511 | 7:f4e248182d31 | 35 | |
miguelangel_2511 | 7:f4e248182d31 | 36 | /* Calculate pressure values in PSI */ |
miguelangel_2511 | 7:f4e248182d31 | 37 | pressure_01_psi = (5.0 * pressure_01_bin) / 16383; |
miguelangel_2511 | 7:f4e248182d31 | 38 | pressure_02_psi = (5.0 * pressure_02_bin) / 16383; |
miguelangel_2511 | 7:f4e248182d31 | 39 | diff_pressure_psi = (5.0 * diff_pressure_bin) / 16383; |
miguelangel_2511 | 7:f4e248182d31 | 40 | |
miguelangel_2511 | 7:f4e248182d31 | 41 | } |
miguelangel_2511 | 7:f4e248182d31 | 42 | |
miguelangel_2511 | 7:f4e248182d31 | 43 |