ID非公開

2021/5/18 8:11

33回答

Arduinoのプログラムについて教えてください。whileループでリミットが押されたらbreakさせるという動作が基本なのですが、万が一トラブルでリミットが押されなかった場合、10秒間経つとリミットが押されたかどうか

ベストアンサー

0

ThanksImg質問者からのお礼コメント

皆さん、ありがとうございます。

お礼日時:5/18 12:33

その他の回答(2件)

0

言葉通りに、10秒経ったらループからbreakすれば特に問題はないのでは。 const unsigned int TOUT=10*1000; bool limitSw=false; unsigned ling t0=millis(); //millis()は起動からの時間をミリ秒単位で返す関数。ループに入る直前の時間を保持する while(!limitSw){ if(millis()-t0>TOUT) break; //現在の時間-ループに入った時間でループの滞在時間が求まる。それが既定値以上ならタイムアウト limitSw=(digitalRead(sw)==HIGH);//スイッチの極性によって適宜変更 } //ここに到達した時点でlimitSwがtrueになっていなければタイムアウト