Heater for threaded program
Dependents: LEX_Threaded_Programming_V3
Heater.h
- Committer:
- omatthews
- Date:
- 2019-07-23
- Revision:
- 11:785a0329f802
- Parent:
- 10:0e16d8430d66
- Child:
- 12:8a048f111140
- Child:
- 13:8629d78fd93b
File content as of revision 11:785a0329f802:
/*------------------------------------------------------------------------------ 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 40 // measurement delay for ADC #define N_ROLL_AVG 5 // rolling average for R values #define ALL_CH 15 //value of convst bus to read all chanels simultaneosly 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, DigitalOut 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; int i_port; int v_port; DigitalOut drive; //Heater correlations give temperature for a given resistance (assume linear relationship) float corr_grad; float corr_int; }; #endif