Heater files
Dependents: LEX-Demo-Firmware-Logging LEX-Demo-Firmware-Logging
Heater.h
- Committer:
- omatthews
- Date:
- 2019-07-23
- Revision:
- 14:f266bf960b8d
- Parent:
- 12:8a048f111140
- Child:
- 15:e7838491c104
File content as of revision 14:f266bf960b8d:
/*------------------------------------------------------------------------------ Library header file for heater operations Date: 16/07/2018 ------------------------------------------------------------------------------*/ #ifndef Heater_H #define Heater_H #include "mbed.h" #include "ADS8568_ADC.h" #define MEAS_DELAY 80 // measurement delay for ADC #define WAIT_DELAY 5 // wait delay for ADC #define N_ROLL_AVG 3 // rolling average for R values #define ALL_CH 15 //value of convst bus to read all chanels simultaneosly #define Kd 0.5f //proportional gain #define Ki 1.0f //Integrator gain class Heater { //This class provides the interface through which each heater can be controlled public: /** Constructor * @param i_port, the port for the current in the ADC * @param v_port, the port for the voltage in the ADC * @param drive, the motor drive * @param R_ref, the target value for R */ Heater(int i_port, int v_port, PwmOut drive, float corr_grad, float corr_int, float R_ref = 1); //Public member functions void read(); void hold(int hold_time); void ramp_R(int ramp_time, float R_final, float R_start); void ramp_T(int ramp_time, float T_final, float T_start); void output(); //Conversions between temperature and resistance float R_to_T(float R); float T_to_R(float T); //Getters and setters void Set_T_ref(float T); void Set_R_ref(float R); int Get_i(); int Get_v(); float Get_R(); float Get_T(); void turn_on(); void turn_off(); protected: int curr; int v; float R; float R_ref; float error; float error_integrated; int i_port; int v_port; PwmOut drive; //Heater correlations give temperature for a given resistance (assume linear relationship) float corr_grad; float corr_int; }; #endif