极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18167|回复: 5

小白求解

[复制链接]
发表于 2015-12-15 19:31:19 | 显示全部楼层 |阅读模式
下面代码是获取随机数的代码,但这个是无限循环的,我想要它在只运行一分钟,可以加个按键,按一下,运行一分钟,不按则不运行。本人小白 意思我明白 加个按钮 设个变量什么的 但具体不会写代码 希望大家帮忙。谢谢了




long randNumber;

void setup(){
  Serial.begin(9600);
  randomSeed(analogRead(A0));
}

void loop(){
  randNumber = random(600);
  Serial.println(randNumber);

  delay(200);
}
回复

使用道具 举报

发表于 2015-12-15 20:41:47 | 显示全部楼层
想好了流程, 不會太難吧.
可以用兩個變數, 一個決定是否執行, 一個記錄開始時間.  一開始設定要執行, 並記下當時的時間.
在 loop 之內, 如果在執行中, 先檢查是否已過了一分鐘, 如果是就設定不再執行並停止, 否則就執行.
如果不在執行中, 就檢查按鈕, 按下了就設定成要執行,並執行一次.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-15 21:24:00 | 显示全部楼层
Super169 发表于 2015-12-15 20:41
想好了流程, 不會太難吧.
可以用兩個變數, 一個決定是否執行, 一個記錄開始時間.  一開始設定要執行, 並記 ...

对代码不太理解 能开个头嘛 谢谢了
回复 支持 反对

使用道具 举报

发表于 2015-12-16 01:04:59 | 显示全部楼层
不好意思, 我一向主張只提供方法, 自己寫程式才有意義.
已經給了很大的提示, 流程也說了, 只要轉成程式就可以.
或者你嘗試一句一句的轉成程式, 去到那一句不明白我再提示吧.

就用之前的提示, 給你開個頭吧:

"可以用兩個變數, 一個決定是否執行, 一個記錄開始時間."
就是設定兩個變數, a 及 b 吧, 簡單點 a 為 boolean, b 為 unsigned long.

程式碼就是:
boolean a;
unsigned long b;

之後的, 就由你去做吧.
再加點提示: a 代表當前是否在執行中, b 為開給執行的時間 (以 millis() 的數值為根據), 當 millis() 的值比 b 超過了 60000 就停.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-16 19:01:56 | 显示全部楼层
Super169 发表于 2015-12-16 01:04
不好意思, 我一向主張只提供方法, 自己寫程式才有意義.
已經給了很大的提示, 流程也說了, 只要轉成程式就 ...

现在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);
   
}
回复 支持 反对

使用道具 举报

发表于 2015-12-16 20:41:05 | 显示全部楼层
qwer1111 发表于 2015-12-16 19:01
现在i为每秒+1 来当做计时 那怎么运用millis来让随机数每500ms显示呢 我对代码不懂哎 希望前辈讲白 谢谢了 ...

你好像沒看我說了什麼......怎麼不認真嘗試一句句來?  你做的根本不是我說的東西.

之前的下一句是 " 一開始設定要執行, 並記下當時的時間."
你有做嗎?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 04:23 , Processed in 0.053359 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表