ライブラリの読み込み、ピン番号など unsigned long start_time = 0; void setup() { start_time = millis(); Serial.begin(9600) ; led.begin(); } void loop() { if分の条件の値を取得するプログラム unsigned long now_time = 0; int ledstat = 0; if (150 <= a && a <= 170) { ledstat = led.Color(255, 255, 255); now_time = millis(); }else{ ledstat = 0; } if (now_time - start_time > 600*1000 && ledstat != 0) { ledstat = 0; start_time = millis(); } led.setPixelColor(0, ledstat); led.show(); } 1部参考にさせてもらっているところは省略しています。(質問の内容には支障ない部分です。) 回答を頂いて最初のコードから少し変更をしていまいました。 このコードで試したら、2回目以降はきちんと時間通りに消灯するのですが、1回目だけ時間通りに出来ませんでした。(起動してからの時間+条件を満たしてからの時間で10分) どこが間違っているか教えて頂きたいです。 ちなみに、途中で条件を満たさない場合は消灯させたく、10分間条件に満たしていれば消灯という感じにしたいです。 重ねて質問していまいすみません。 ```ある条件を満たしたらLEDが点灯するというプログラムを制作しています。そこで、LEDが10分継続して点灯していた場合消灯するようにしたいです。 条件を満たし、LEDが点灯した時にtime_start=millis();を使用し、if(millis()-time_start>=10*1000 && ledstat!=0){消灯するプログラム}でやってみたのですが、millis()-time_startの値が毎回0になってしまい上手く行きません。何か良い方法や問題点があれば教えて下さい。 あと、1つ疑問なのですがmillis()はある条件を満たしてからの時間を取得する事は出来ないのでしょうか?
コード載せてください
> 1部参考にさせてもらっているところは省略しています。(質問の内容には支障ない部分です。)
その部分を省略して、動くプログラムとしてもなお症状が発生するのならともかく、
問題を解決出来ていないあなたに、省略していいと判断することがどうしてできるのでしょうか...
どこかで見たような...と思ったら、知恵袋の削除された質問か。Googleにキャッシュが残ってた。
https://webcache.googleusercontent.com/search?q=cache:u_gylgWEBtIJ:https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12231070332+
クラスの中で伝言ゲームを何回か経るうちにコードがだいぶ変わってしまった?
回答4件
あなたの回答
tips
プレビュー