Initial Commit

This commit is contained in:
eneller
2026-01-08 02:32:39 +01:00
commit bd40ae23da
2 changed files with 44 additions and 0 deletions

6
README.md Normal file
View File

@@ -0,0 +1,6 @@
# Reflow Plate
Custom Reflow Plate inspired by [UnexpectedMaker
ReflowMaster](https://github.com/UnexpectedMaker/ReflowMaster)
[Pro](https://reflowmasterpro.com)
using [PID](https://en.wikipedia.org/wiki/Proportional%E2%80%93integral%E2%80%93derivative_controller)
to control a simple grill.

38
src/pid.cpp Normal file
View File

@@ -0,0 +1,38 @@
const float k_p = 1.0;
const float k_i = 3.0;
const float k_d = 0.2;
const float tick_millis = 30'000;
float target;
float measured;
float error;
float error_last;
float output;
float i;
float d;
unsigned long time_last_millis;
unsigned long time_cur_millis;
unsigned long time_delta_millis;
float pid(float error, float error_last, unsigned long delta){
float p = k_p * error;
float i = i + (k_i * delta * error);
float d = k_d * (error - error_last) / delta;
return p+i+d;
}
void setup(){
time_last_millis = millis();
}
void loop(){
time_cur_millis = millis();
time_delta_millis = time_cur_millis - time_last_millis;
if (time_delta_millis > tick_millis) {
time_last_millis = time_cur_millis;
error_last = error;
error = target - measured;
output = pid(error, error_last, time_delta_millis);
}
}