checks and error codes
This commit is contained in:
parent
5dd864d787
commit
5e8ae479ca
|
@ -13,7 +13,8 @@
|
||||||
#define E_DT_MIN 1 // temperatur dt too small
|
#define E_DT_MIN 1 // temperatur dt too small
|
||||||
#define E_DT_MAX 2 // temperatur dt too big
|
#define E_DT_MAX 2 // temperatur dt too big
|
||||||
#define E_TIME_MAX 4 // reflow process does take too long
|
#define E_TIME_MAX 4 // reflow process does take too long
|
||||||
#define E_PEAK_TOO_LONG 8 // package was roasted
|
#define E_TL_TOO_LONG 8 // package was roasted
|
||||||
|
#define E_TP_TOO_LONG 16 // package was roasted
|
||||||
|
|
||||||
// system time, timestamps and temperatures from sensors
|
// system time, timestamps and temperatures from sensors
|
||||||
__attribute__((__unused__)) static unsigned int time = 0; // profile seconds
|
__attribute__((__unused__)) static unsigned int time = 0; // profile seconds
|
||||||
|
@ -124,19 +125,26 @@ static void print_debug() {
|
||||||
Serial.println(error_condition);
|
Serial.println(error_condition);
|
||||||
}
|
}
|
||||||
|
|
||||||
// boolean check_max_duration() {
|
boolean check_max_duration() {
|
||||||
// if (time > time_max) {
|
|
||||||
// error_condition = E_TIME_MAX;
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
/*
|
|
||||||
boolean check_Tl_duration() {
|
|
||||||
if (time > time_max) {
|
if (time > time_max) {
|
||||||
error_condition = E_TIME_MAX;
|
error_condition |= E_TIME_MAX;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
|
|
||||||
|
boolean check_Tl_duration() {
|
||||||
|
if (time - Tl_time_start > Tp_duration) {
|
||||||
|
error_condition |= E_TL_TOO_LONG;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean check_Tp_duration() {
|
||||||
|
if (time - Tp_time_start > Tp_duration) {
|
||||||
|
error_condition |= E_TP_TOO_LONG;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void set_start_state() {
|
static void set_start_state() {
|
||||||
state = START_STATE;
|
state = START_STATE;
|
||||||
|
@ -223,6 +231,7 @@ static void handle_ramp_up_state() {
|
||||||
|
|
||||||
|
|
||||||
static void handle_tal_first_state() {
|
static void handle_tal_first_state() {
|
||||||
|
check_Tl_duration();
|
||||||
if (temperatur > Tp - 5) {
|
if (temperatur > Tp - 5) {
|
||||||
Tp_time_start = time;
|
Tp_time_start = time;
|
||||||
set_peak_state();
|
set_peak_state();
|
||||||
|
@ -231,6 +240,8 @@ static void handle_tal_first_state() {
|
||||||
|
|
||||||
|
|
||||||
static void handle_peak_state() {
|
static void handle_peak_state() {
|
||||||
|
check_Tl_duration();
|
||||||
|
check_Tp_duration();
|
||||||
if (time - Tp_time_start > Tp_duration) {
|
if (time - Tp_time_start > Tp_duration) {
|
||||||
Tp_time_end = time;
|
Tp_time_end = time;
|
||||||
set_tal_second_state();
|
set_tal_second_state();
|
||||||
|
@ -239,6 +250,7 @@ static void handle_peak_state() {
|
||||||
|
|
||||||
|
|
||||||
static void handle_tal_second_state() {
|
static void handle_tal_second_state() {
|
||||||
|
check_Tl_duration();
|
||||||
if (temperatur < Tl) {
|
if (temperatur < Tl) {
|
||||||
set_ramp_down_state();
|
set_ramp_down_state();
|
||||||
}
|
}
|
||||||
|
@ -268,9 +280,15 @@ static void handle_error_state() {
|
||||||
led_on = true;
|
led_on = true;
|
||||||
}
|
}
|
||||||
if (error_condition & E_DT_MIN)
|
if (error_condition & E_DT_MIN)
|
||||||
Serial.print("Error: delta °K/second too low");
|
Serial.println("Error: delta °K/second too low");
|
||||||
if (error_condition & E_DT_MAX)
|
if (error_condition & E_DT_MAX)
|
||||||
Serial.print("Error: delta °K/second too big");
|
Serial.println("Error: delta °K/second too big");
|
||||||
|
if (error_condition & E_TIME_MAX)
|
||||||
|
Serial.println("Error: reflow process does take too long");
|
||||||
|
if (error_condition & E_TL_TOO_LONG)
|
||||||
|
Serial.println("Error: temperatur above liquidus was too long");
|
||||||
|
if (error_condition & E_TP_TOO_LONG)
|
||||||
|
Serial.println("Error: peak temperature duration was too long");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -278,6 +296,7 @@ void loop() {
|
||||||
time = millis() / 1000;
|
time = millis() / 1000;
|
||||||
get_temp();
|
get_temp();
|
||||||
check_dt();
|
check_dt();
|
||||||
|
check_max_duration();
|
||||||
|
|
||||||
if (error_condition) {
|
if (error_condition) {
|
||||||
set_error_state();
|
set_error_state();
|
||||||
|
|
Loading…
Reference in New Issue