Heater for threaded program

Dependents:   LEX_Threaded_Programming

Committer:
omatthews
Date:
Thu Jul 18 15:29:19 2019 +0000
Revision:
5:21442d9d19c5
Parent:
4:29ffcc7b410e
PWM first attempt;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
omatthews 0:4e33cc8171f4 1 /*------------------------------------------------------------------------------
omatthews 0:4e33cc8171f4 2 Library header file for heater operations
omatthews 0:4e33cc8171f4 3 Date: 16/07/2018
omatthews 0:4e33cc8171f4 4
omatthews 0:4e33cc8171f4 5
omatthews 0:4e33cc8171f4 6 ------------------------------------------------------------------------------*/
omatthews 0:4e33cc8171f4 7
omatthews 0:4e33cc8171f4 8 #ifndef Heater_H
omatthews 0:4e33cc8171f4 9 #define Heater_H
omatthews 0:4e33cc8171f4 10 #include "mbed.h"
omatthews 0:4e33cc8171f4 11 #include "ADS8568_ADC.h"
omatthews 0:4e33cc8171f4 12
omatthews 4:29ffcc7b410e 13 #define MEAS_DELAY 50 // measurement delay for ADC
omatthews 5:21442d9d19c5 14 #define N_ROLL_AVG 1 // rolling average for R values
omatthews 1:4435d407d827 15 #define ALL_CH 15 //value of convst bus to read all chanels simultaneosly
omatthews 0:4e33cc8171f4 16
omatthews 0:4e33cc8171f4 17 class Heater
omatthews 0:4e33cc8171f4 18 {
omatthews 3:313711a66929 19 //This class provides the interface through which each heater can be controlled
omatthews 0:4e33cc8171f4 20 public:
omatthews 0:4e33cc8171f4 21 /** Constructor
omatthews 3:313711a66929 22 * @param i_port, the port for the current in the ADC
omatthews 3:313711a66929 23 * @param v_port, the port for the voltage in the ADC
omatthews 3:313711a66929 24 * @param drive, the motor drive
omatthews 3:313711a66929 25 * @param R_ref, the target value for R
omatthews 0:4e33cc8171f4 26 */
omatthews 5:21442d9d19c5 27 Heater(int i_port, int v_port, PwmOut drive, float corr_grad, float corr_int, float R_ref = 1);
omatthews 0:4e33cc8171f4 28
omatthews 0:4e33cc8171f4 29 //Public member functions
omatthews 0:4e33cc8171f4 30
omatthews 2:7f15386fcc90 31 void read();
omatthews 0:4e33cc8171f4 32 void hold(int hold_time);
omatthews 4:29ffcc7b410e 33 void ramp_R(int ramp_time, float R_final, float R_start);
omatthews 4:29ffcc7b410e 34 void ramp_T(int ramp_time, float T_final, float T_start);
omatthews 3:313711a66929 35
omatthews 3:313711a66929 36 //Conversions between temperature and resistance
omatthews 3:313711a66929 37 float R_to_T(float R);
omatthews 3:313711a66929 38 float T_to_R(float T);
omatthews 1:4435d407d827 39
omatthews 1:4435d407d827 40
omatthews 2:7f15386fcc90 41
omatthews 2:7f15386fcc90 42 //Getters and setters
omatthews 3:313711a66929 43 void Set_T_ref(float T);
omatthews 3:313711a66929 44 void Set_R_ref(float R);
omatthews 2:7f15386fcc90 45 int Get_i();
omatthews 2:7f15386fcc90 46 int Get_v();
omatthews 0:4e33cc8171f4 47 float Get_R();
omatthews 3:313711a66929 48 float Get_T();
omatthews 3:313711a66929 49
omatthews 0:4e33cc8171f4 50
omatthews 1:4435d407d827 51 void turn_on();
omatthews 1:4435d407d827 52 void turn_off();
omatthews 0:4e33cc8171f4 53
omatthews 0:4e33cc8171f4 54
omatthews 0:4e33cc8171f4 55
omatthews 0:4e33cc8171f4 56 protected:
omatthews 0:4e33cc8171f4 57
omatthews 0:4e33cc8171f4 58
omatthews 2:7f15386fcc90 59 int curr;
omatthews 2:7f15386fcc90 60 int v;
omatthews 0:4e33cc8171f4 61 float R;
omatthews 3:313711a66929 62 float R_ref;
omatthews 1:4435d407d827 63
omatthews 0:4e33cc8171f4 64 int i_port;
omatthews 0:4e33cc8171f4 65 int v_port;
omatthews 5:21442d9d19c5 66 PwmOut drive;
omatthews 3:313711a66929 67
omatthews 3:313711a66929 68 //Heater correlations give temperature for a given resistance (assume linear relationship)
omatthews 3:313711a66929 69 float corr_grad;
omatthews 3:313711a66929 70 float corr_int;
omatthews 0:4e33cc8171f4 71
omatthews 0:4e33cc8171f4 72 };
omatthews 0:4e33cc8171f4 73
omatthews 0:4e33cc8171f4 74 #endif
omatthews 0:4e33cc8171f4 75