state machine - Flag - 狀態機

// https://zerojudge.tw/ShowProblem?problemid=d618
// https://milochen.wordpress.com/2011/03/18/programming-thinking-from-flag-to-state-machine-new-method/
// key word - 狀態機 - state machine - Flag
boolean X = false;
boolean Y = true;
void setup() {
  Serial.begin(9600);
  pinMode(D5,OUTPUT);
  pinMode(D7,INPUT);
  pinMode(D8,INPUT);
}

void loop() {
int b = digitalRead(D7);
int c = digitalRead(D8);
if (b == HIGH && c == LOW && Y == false ) {
  Y = true;
  Serial.println("B迴圈1");  //按下B,
}
else if(b == LOW && c == LOW && Y == true ) {
  Serial.println("B迴圈2");  //放開B,等待C按下
}
else if(b == LOW && c == HIGH && Y == true ) {
  X = !X; Y = false;
  Serial.println("C迴圈");  //C按下,執行C
}
else if(b == LOW && c == LOW && Y == false){
  Serial.println("A迴圈");  //C執行結束,進入A,等待B按下
}
delay (350);
}

沒有留言:

張貼留言