Commit | Line | Data |
---|---|---|
ded56b35 AW |
1 | #ifndef TEMPERATURECONTROL_H |
2 | #define TEMPERATURECONTROL_H | |
3 | ||
4 | #include "mbed.h" | |
5 | #include "libs/Module.h" | |
6 | #include "libs/Kernel.h" | |
7 | #include <math.h> | |
8 | ||
9 | #define UNDEFINED -1 | |
10 | ||
7dd8133c AW |
11 | |
12 | #define temperature_control_r0_ckeckusm 8728 | |
13 | #define readings_per_second_ckeckusm 18645 | |
14 | #define temperature_control_t0_ckeckusm 9754 | |
15 | #define temperature_control_beta_ckeckusm 64275 | |
16 | #define temperature_control_vadc_ckeckusm 8725 | |
17 | #define temperature_control_vcc_ckeckusm 4274 | |
18 | #define temperature_control_r1_ckeckusm 8985 | |
19 | #define temperature_control_r2_ckeckusm 9242 | |
20 | ||
21 | ||
22 | ||
23 | ||
ded56b35 AW |
24 | class TemperatureControl : public Module { |
25 | public: | |
26 | TemperatureControl(); | |
27 | ||
28 | void on_module_loaded(); | |
29 | void on_gcode_execute(void* argument); | |
7dd8133c | 30 | void on_config_reload(void* argument); |
ded56b35 AW |
31 | void set_desired_temperature(double desired_temperature); |
32 | double get_temperature(); | |
33 | double adc_value_to_temperature(double adc_value); | |
34 | double temperature_to_adc_value(double temperature); | |
35 | void thermistor_read_tick(); | |
36 | double new_thermistor_reading(); | |
37 | double average_adc_reading(); | |
38 | ||
39 | ||
40 | AnalogIn* thermistor_pin; | |
41 | PwmOut* heater_pwm; | |
42 | double pwm_value; | |
43 | double desired_adc_value; | |
44 | double tail_adc_value; | |
45 | double head_adc_value; | |
46 | ||
47 | // Thermistor computation settings | |
48 | double r0; | |
49 | double t0; | |
7dd8133c AW |
50 | double r1; |
51 | double r2; | |
ded56b35 AW |
52 | double beta; |
53 | double vadc; | |
54 | double vcc; | |
55 | double k; | |
56 | double vs; | |
57 | double rs; | |
58 | ||
59 | double acceleration_factor; | |
60 | double readings_per_second; | |
61 | ||
62 | RingBuffer<double,16> queue; // Queue of Blocks | |
63 | int error_count; | |
64 | }; | |
65 | ||
66 | #endif |