前提・実現したいこと
arduinoを使用して光センサで読み取った値でWORKING・STOPを表示させたいと考えております。
発生している問題・エラーメッセージ
入力された値が900以上であればWORKING
900以下であればSTOP
を表示させ、LOGデータを取りたいと考えており、表示だけはできたのですが、
Logデータがすぐいっぱいになってしまい、困っております。
WORKING状態が続いていれば、STOPの状態になるまで出力をしないようにできないでしょうか??
同じ出力が続く際に同条件であれば出力しない等の方法があればご教示頂けたら幸いです。
delayでLOGの量を少なくする方法はあまり、芳しくないです…。
エラーメッセージ
### 該当のソースコード int val=0; //入力される値を格納する為の変数 void setup() { Serial.begin(9600); //モニターに出力するための設定 } void loop() { //ANALOG INの0番ピンからデータを受け付ける { val=analogRead(0); if(val>900){ Serial.print("初号機"); Serial.println("WORKING"); //入力された値をモニターに出力 } else if(val<900){ Serial.print("初号機"); Serial.println("STOP"); //入力された値をモニターに出力 } delay(1000); } { val=analogRead(1); Serial.print("弐号機]"); Serial.println(val/1); //入力された値をモニターに出力 delay(1000); } } ```ここに言語名を入力 C++ ### 試したこと - ### 補足情報(FW/ツールのバージョンなど) シリアルモニタにはteratermの使用を考えております。
本題ではないですけれど、
> 900以上であればWORKING
> 900以下であればSTOP
900はどっちも真なんですけど、どうしましょう。
しかもプログラムの方では
if(val>900){//900より大きい
}else if(val<900){//900未満
}
900はどちらも偽なのでなにもしません。
今回は大した影響はないかも知れませんけど、そういう不統一は時として気付きにくい面倒なバグになります。気をつけましょう。
回答1件
あなたの回答
tips
プレビュー