小白求解
下面代码是获取随机数的代码,但这个是无限循环的,我想要它在只运行一分钟,可以加个按键,按一下,运行一分钟,不按则不运行。本人小白 意思我明白 加个按钮 设个变量什么的 但具体不会写代码 希望大家帮忙。谢谢了long randNumber;
void setup(){
Serial.begin(9600);
randomSeed(analogRead(A0));
}
void loop(){
randNumber = random(600);
Serial.println(randNumber);
delay(200);
}
想好了流程, 不會太難吧.
可以用兩個變數, 一個決定是否執行, 一個記錄開始時間.一開始設定要執行, 並記下當時的時間.
在 loop 之內, 如果在執行中, 先檢查是否已過了一分鐘, 如果是就設定不再執行並停止, 否則就執行.
如果不在執行中, 就檢查按鈕, 按下了就設定成要執行,並執行一次.
Super169 发表于 2015-12-15 20:41 static/image/common/back.gif
想好了流程, 不會太難吧.
可以用兩個變數, 一個決定是否執行, 一個記錄開始時間.一開始設定要執行, 並記 ...
对代码不太理解 能开个头嘛 谢谢了 不好意思, 我一向主張只提供方法, 自己寫程式才有意義.
已經給了很大的提示, 流程也說了, 只要轉成程式就可以.
或者你嘗試一句一句的轉成程式, 去到那一句不明白我再提示吧.
就用之前的提示, 給你開個頭吧:
"可以用兩個變數, 一個決定是否執行, 一個記錄開始時間."
就是設定兩個變數, a 及 b 吧, 簡單點 a 為 boolean, b 為 unsigned long.
程式碼就是:
boolean a;
unsigned long b;
之後的, 就由你去做吧.
再加點提示: a 代表當前是否在執行中, b 為開給執行的時間 (以 millis() 的數值為根據), 當 millis() 的值比 b 超過了 60000 就停.
Super169 发表于 2015-12-16 01:04 static/image/common/back.gif
不好意思, 我一向主張只提供方法, 自己寫程式才有意義.
已經給了很大的提示, 流程也說了, 只要轉成程式就 ...
现在i为每秒+1 来当做计时 那怎么运用millis来让随机数每500ms显示呢 我对代码不懂哎 希望前辈讲白 谢谢了 就是让这个两个同时分别运行 一个为每1秒 一个为0.5秒 :'(
unsigned long currentMillis;
long randNumber;
int i=0;
int interval = 1000;
void setup() {
Serial.begin(9600);
randomSeed(analogRead(A0));
}
void loop() {
unsigned long startMillis = millis();
for(currentMillis = millis();startMillis + interval > currentMillis;)
{currentMillis=millis();}
Serial.println(i);
i++;
randNumber = random(600);
Serial.println(randNumber);
} qwer1111 发表于 2015-12-16 19:01 static/image/common/back.gif
现在i为每秒+1 来当做计时 那怎么运用millis来让随机数每500ms显示呢 我对代码不懂哎 希望前辈讲白 谢谢了 ...
你好像沒看我說了什麼......怎麼不認真嘗試一句句來?你做的根本不是我說的東西.
之前的下一句是 " 一開始設定要執行, 並記下當時的時間."
你有做嗎?
页:
[1]