アプリ版:「スタンプのみでお礼する」機能のリリースについて

かんたんに書きましたが

void loop() {
while(digitalRead(a)!=HIGH){} //ボタンが離されるのを待つ
delay(200); //チャタリング除去
while(digitalRead(a)!=LOW){} //ボタンが押されるのを待つ
delay(200); //チャタリング除去
  


この部分に10秒何もしなかったら最初に戻る動作は
if文でどのように書いたらよろしいのでしょうか?



while(digitalRead(a)!=HIGH){} //ボタンが離されるのを待つ
delay(100); //チャタリング除去
digitalWrite(b,HIGH); //LEDを点灯
while(digitalRead(a)!=LOW){} //ボタンが押されるのを待つ
delay(20); //チャタリング除去
digitalWrite(b,LOW); //LEDを点灯
}

A 回答 (2件)

delay()でそういう待ちを入れるのはどうなのかなぁ…とは思いますが…。



return;で関数を抜ける…という手もあります。
arduinoならloop()から戻った(returnするか、関数の最後まで実行した)場合、再度loop()がコールされるはずです。
    • good
    • 0
この回答へのお礼

ありがとうございます
初心者なので、勉強中ですが
考え方がわかりません

お礼日時:2021/11/22 09:30

フローチャート書くところから考え直すべきです。


そのコードを使用するのが前提なら、ラベルジャンプを使用しない限り、
『最初に戻る』なんてできません。
ラベルジャンプは限りなく黒に近いグレーな手段で、使用すべきではありません。
まずは「ボタンが押されたら10秒間LEDを点灯する」から始めましょう。
基本ができずに応用ができるはず無し。
    • good
    • 0
この回答へのお礼

初めて使用していますので
なかなかわかりません
勉強するにもなかなかわからなくて
すいません

お礼日時:2021/11/22 09:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!