1 #ifndef TEMPERATURECONTROL_H
2 #define TEMPERATURECONTROL_H
5 #include "libs/Module.h"
6 #include "libs/Kernel.h"
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
24 class TemperatureControl
: public Module
{
28 void on_module_loaded();
29 void on_gcode_execute(void* argument
);
30 void on_config_reload(void* argument
);
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();
40 AnalogIn
* thermistor_pin
;
43 double desired_adc_value
;
44 double tail_adc_value
;
45 double head_adc_value
;
47 // Thermistor computation settings
59 double acceleration_factor
;
60 double readings_per_second
;
62 RingBuffer
<double,16> queue
; // Queue of Blocks