Browse Source

pushpull sensor logik

tags/FSM2.0
Simon Schmidt 2 years ago
parent
commit
dcae074b55
2 changed files with 7 additions and 33 deletions
  1. 6
    32
      lib/treppe/treppe.cpp
  2. 1
    1
      lib/treppe/treppe.h

+ 6
- 32
lib/treppe/treppe.cpp View File

@@ -176,6 +176,8 @@ void Treppe::print_state_on_change() {
}

void Treppe::task(){
//Serial.printf("LDR: %f\n", ((float)analogRead(A0))/1023.*3.68);

if(finish){
direction = switch_direction;
state = switch_state;
@@ -194,40 +196,12 @@ void Treppe::task(){
fsm_outputs = FSMTreppe_Obj.getExternalOutputs();
print_state_on_change();

if(current_sensor_state[0] && !last_sensor_state[0] && state == 0){
setTick(0);
setAnAus(1);
setDirection(1);
setState(1);
}

if(current_sensor_state[1] && !last_sensor_state[1] && state == 0){
setTick(0);
setAnAus(0);
setDirection(0);
setState(1);
}

// first switch - off approach, use timer later
if(!current_sensor_state[0] && last_sensor_state[0] && state == 1){
setTick(ticks_treppe);
setAnAus(1);
setDirection(1);
setState(0);
}

if(!current_sensor_state[1] && last_sensor_state[1] && state == 1){
setTick(ticks_treppe);
setAnAus(1);
setDirection(0);
setState(0);
}

last_sensor_state[0] = current_sensor_state[0];
last_sensor_state[1] = current_sensor_state[1];
// setTick(ticks_treppe);
// setAnAus(1);
// setDirection(0);
// setState(0);
ledsequence();
//Serial.printf("LDR: %f\n", ((float)analogRead(A0))/1023.*3.68);
}



+ 1
- 1
lib/treppe/treppe.h View File

@@ -45,7 +45,7 @@ private:
void ledsequence();
void rampe();
bool read_sensor(int sensor) {
int pegel = !digitalRead(sensor);
int pegel = digitalRead(sensor);
return static_cast<bool>(pegel);
}
public:

Loading…
Cancel
Save