arduinoで状態遷移の実装方法を教えてほしいです。

実現したいこと

①スイッチを押すたびにシリアルモニタに出力される内容を変える
②状態を表す変数【state】をボタン押下ごとに変化させる
③添付画像の状態遷移図の青線内のプログラムを関数にしたい

発生している問題・分からないこと

イメージ説明

エラーメッセージ

error

1コンパイルは通りエラーは出ていないのですが 2 3PUSH 4バックルを取り出す 5PUSH 6カードを装填 7 8とボタンを押下するたびに順々に表示されてほしいのですがうまくいきません。

該当のソースコード

//状態の定数 #define BC_A 1//befor_change=BCの状態 #define BC_B 2 #define BC_C 3 #define BC_D 4 #define BC_E 5 #define AC_A 1//変身後の状態 uint8_t state = BC_A ;//現在の状態、変身前の最初を格納しておく //bc_a~bc_eまでの一本道の処理の関数を用意する void change_Flow() { if(digitalRead(8)==LOW) { Serial.println("PUSHED"); delay(1000); switch(state) { case 1: Serial.println("バックルを取り出す"); state=BC_B; break; case2: Serial.println("カードを装填"); state=BC_C; break; case3: Serial.println("ベルト出現開始"); state=BC_D; break; case4: Serial.println("ベルト出現停止"); Serial.println("待機音開始"); state=BC_E; break; case5: Serial.println("待機音停止"); Serial.println("変身音声"); state=AC_A; break; } } } void setup() { // put your setup code here, to run once: pinMode(9,INPUT_PULLUP); pinMode(8,INPUT_PULLUP); pinMode(7,INPUT_PULLUP); Serial.begin(9600); Serial.println("BOOT"); } void loop() { change_Flow(); delay(100); // put your main code here, to run repeatedly: }

試したこと・調べたこと

上記の詳細・結果

グーグルでswitch文 状態遷移 などで調べましたが解決法が見つからず今に至ります。
調べ方が悪くリサーチ力も低いのでこうなっていると思います...

補足

特になし

コメントを投稿

0 コメント