Express range check differently

This commit is contained in:
Philipp Matthias Schaefer 2020-02-02 21:06:03 +01:00
parent aaab790f81
commit ad97be1295

View file

@ -20,7 +20,7 @@ void setup(){
const int DELAY_TIME = 1000; const int DELAY_TIME = 1000;
const int MAX_COUNTER = 20; const int MAX_COUNTER = 20;
const int LOWER_THRESHOLD = 3; const int LOWER_THRESHOLD = 4;
const int UPPER_THRESHOLD = MAX_COUNTER - LOWER_THRESHOLD; const int UPPER_THRESHOLD = MAX_COUNTER - LOWER_THRESHOLD;
const int CLOSED_DOOR = 1; const int CLOSED_DOOR = 1;
const int OPEN_DOOR = 0; const int OPEN_DOOR = 0;
@ -46,9 +46,9 @@ void update_measured_state_counter() {
void update_published_state() { void update_published_state() {
// status check if we can switch the status. // status check if we can switch the status.
// low pass prevents waggling a bit // low pass prevents waggling a bit
if (measured_state_counter >= UPPER_THRESHOLD) { if (measured_state_counter > UPPER_THRESHOLD) {
published_state = CLOSED_DOOR; published_state = CLOSED_DOOR;
} else if (measured_state_counter <= LOWER_THRESHOLD) { } else if (measured_state_counter < LOWER_THRESHOLD) {
published_state = OPEN_DOOR; published_state = OPEN_DOOR;
} }
} }
@ -62,7 +62,7 @@ void update_led_pins() {
digitalWrite(GREEN_LED_OUTPUT_PIN, HIGH); digitalWrite(GREEN_LED_OUTPUT_PIN, HIGH);
} }
if (measured_state_counter > LOWER_THRESHOLD && measured_state_counter < UPPER_THRESHOLD) { if (measured_state_counter == constrain(measured_state_counter, LOWER_THRESHOLD, UPPER_THRESHOLD)) {
digitalWrite(YELLOW_LED_OUTPUT_PIN, HIGH); digitalWrite(YELLOW_LED_OUTPUT_PIN, HIGH);
} else { } else {
digitalWrite(YELLOW_LED_OUTPUT_PIN, LOW); digitalWrite(YELLOW_LED_OUTPUT_PIN, LOW);