极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10191|回复: 6

关于随机数的问题

[复制链接]
发表于 2015-12-9 21:21:58 | 显示全部楼层 |阅读模式
下面代码是打开串口监视器 看到产生的随机数 但这个是无限循环的 我想加个按钮 按下时开始给随机数 定个变量 几分钟后自动停止 求大神帮忙加入代码 谢谢了

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

void loop(){
randNumber = random(600);
Serial.println(randNumber);
delay(200);
}
回复

使用道具 举报

发表于 2015-12-9 22:14:46 | 显示全部楼层
pinMode(xxx,INPUT);

loop()
{
    if(digitalRead(xxx))flag=1;
    if (flag)
    {
        time=millis();
        if (millis()-time>xxxx)flag=0;
        randNumber = random(600);
        Serial.println(randNumber);
        delay(200);
    }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-10 09:08:27 | 显示全部楼层
bubing120 发表于 2015-12-9 22:14
pinMode(xxx,INPUT);

loop()

    if(digitalRead(xxx))flag=1;
     if (flag)
这个语句写入错误啊 怎么改下?
回复 支持 反对

使用道具 举报

发表于 2015-12-10 10:00:50 | 显示全部楼层
gthrtg 发表于 2015-12-10 09:08
if(digitalRead(xxx))flag=1;
     if (flag)
这个语句写入错误啊 怎么改下?

这是伪代码啊 你要填一下参数啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-10 10:50:53 | 显示全部楼层
bubing120 发表于 2015-12-10 10:00
这是伪代码啊 你要填一下参数啊

我知道啊 这样不行

pinMode(KEY,INPUT);

loop()
{
     if(digitalRead(KEY))flag=1;
     if (flag)
     {
         time=millis();
         if (millis()-time>KEY)flag=0;
         randNumber = random(600);
         Serial.println(randNumber);
         delay(200);
     }
}
回复 支持 反对

使用道具 举报

发表于 2015-12-28 11:55:55 | 显示全部楼层
long randNumberA1;
long randNumberA2;
long randNumberB1;
long randNumberB2;

void setup(){
   Serial.begin(9600);
}

void loop() {
   int i=0;
   randomSeed(analogRead(A0));
   randNumberA1 = random(1,11);
   Serial.print("A1:");
   Serial.print(randNumberA1);
   Serial.print(",");
   randNumberA2 = random(1,11);
   Serial.print("A2:");
   while(randNumberA1==randNumberA2){
     randNumberA2 = random(1,11);
     i++;
   }
   Serial.println(" " +String(randNumberA2) + "(Repeat:" + i +  ")" );
   
   randNumberB1 = random(1,11);
   Serial.print("B1:");
   Serial.print(randNumberB1);
   Serial.print(",");
   randNumberB2 = random(1,11);
   Serial.print("B2:");
   while(randNumberB1==randNumberB2){
     randNumberB2 = random(1,11);
     i++;
   }
   
   Serial.println(" " +String(randNumberB2) + "(Repeat:" + i +  ")" );
   Serial.println(" ");

   delay(1000);
}
回复 支持 反对

使用道具 举报

发表于 2015-12-31 13:52:49 | 显示全部楼层
qwer1111 发表于 2015-12-28 11:55
long randNumberA1;
long randNumberA2;
long randNumberB1;

#define KEY 2
#define KEY1 3
#define KEY2 4
#define KEY3 5
#define KEY4 6
#define KEY5 7
#define KEY6 8
#define KEY7 9
#define KEY8 10
#define KEY9 11
#define KEY10 12

unsigned long currentMillis;long randNumberA1;long randNumberA2;
long randNumberB1;long randNumberB2;

int KEY_NUM = 0;int KEY1_NUM = 0;int KEY2_NUM = 0;
int KEY3_NUM = 0;int KEY4_NUM = 0;int KEY5_NUM = 0;
int KEY6_NUM = 0;int KEY7_NUM = 0;int KEY8_NUM = 0;
int KEY9_NUM = 0;int KEY10_NUM = 0;
int a=63;int b=0;int c=0;int interval = 500;
int a1=0;int a2=0;int a3=0;int a4=0;int a5=0;
int b1=0;int b2=0;int b3=0;int b4=0;int b5=0;

void setup()
{
  Serial.begin(9600);
  pinMode(KEY,INPUT_PULLUP);
  pinMode(KEY1,INPUT_PULLUP);
  pinMode(KEY2,INPUT_PULLUP);
  pinMode(KEY3,INPUT_PULLUP);
  pinMode(KEY4,INPUT_PULLUP);
  pinMode(KEY5,INPUT_PULLUP);
  pinMode(KEY6,INPUT_PULLUP);
  pinMode(KEY7,INPUT_PULLUP);
  pinMode(KEY8,INPUT_PULLUP);
  pinMode(KEY9,INPUT_PULLUP);
  pinMode(KEY10,INPUT_PULLUP);
}

void loop()
{
  if(digitalRead(2)==LOW){b=1;}
   if(b==1){
  unsigned long startMillis = millis();
  for(currentMillis = millis();startMillis + interval > currentMillis;)
  {currentMillis=millis();
     if(a<=59){
     
    ScanKey1();
  if(KEY1_NUM == 1)
  { a1=1;Serial.print("A1close:");digitalWrite(23,LOW);digitalWrite(24,LOW);digitalWrite(25,LOW);digitalWrite(26,LOW);digitalWrite(27,LOW);a1=0;
    digitalWrite(randNumberA1,!digitalRead(randNumberA1));
    randNumberA1 = random(23,28);
    Serial.print("A1open:");
    Serial.println(randNumberA1);}
     ScanKey2();
  if(KEY2_NUM == 1)
  { a2=1;Serial.print("A1close:");digitalWrite(23,LOW);digitalWrite(24,LOW);digitalWrite(25,LOW);digitalWrite(26,LOW);digitalWrite(27,LOW);a2=0;
    digitalWrite(randNumberA1,!digitalRead(randNumberA1));
    randNumberA1 = random(23,28);
    Serial.print("A1open:");
    Serial.println(randNumberA1);}
    ScanKey3();
  if(KEY3_NUM == 1)
  { a3=1;Serial.print("A1close:");digitalWrite(23,LOW);digitalWrite(24,LOW);digitalWrite(25,LOW);digitalWrite(26,LOW);digitalWrite(27,LOW);a3=0;
    digitalWrite(randNumberA1,!digitalRead(randNumberA1));
    randNumberA1 = random(23,28);
    Serial.print("A1open:");
    Serial.println(randNumberA1);}
    ScanKey4();
  if(KEY4_NUM == 1)
  {  a4=1;Serial.print("A1close:");digitalWrite(23,LOW);digitalWrite(24,LOW);digitalWrite(25,LOW);digitalWrite(26,LOW);digitalWrite(27,LOW);a4=0;
    digitalWrite(randNumberA1,!digitalRead(randNumberA1));
    randNumberA1 = random(23,28);
    Serial.print("A1open:");
    Serial.println(randNumberA1);}
    ScanKey5();
  if(KEY5_NUM == 1)
  { a5=1;Serial.print("A1close:");digitalWrite(23,LOW);digitalWrite(24,LOW);digitalWrite(25,LOW);digitalWrite(26,LOW);digitalWrite(27,LOW);a5=0;
    digitalWrite(randNumberA1,!digitalRead(randNumberA1));
    randNumberA1 = random(23,28);
    Serial.print("A1open:");
    Serial.println(randNumberA1);}
     ScanKey6();
  if(KEY6_NUM == 1)
  { b1=1;Serial.print("A2close:");digitalWrite(28,LOW);digitalWrite(29,LOW);digitalWrite(30,LOW);digitalWrite(31,LOW);digitalWrite(32,LOW);b1=0;
    digitalWrite(randNumberA2,!digitalRead(randNumberA2));
    randNumberA2 = random(28,33);
    Serial.print("A2open:");
    Serial.println(randNumberA2);}
     ScanKey7();
  if(KEY7_NUM == 1)
  { b2=1;Serial.print("A2close:");digitalWrite(28,LOW);digitalWrite(29,LOW);digitalWrite(30,LOW);digitalWrite(31,LOW);digitalWrite(32,LOW);b2=0;
    digitalWrite(randNumberA2,!digitalRead(randNumberA2));
    randNumberA2 = random(28,33);
    Serial.print("A2open:");
    Serial.println(randNumberA2);}
    ScanKey8();
  if(KEY8_NUM == 1)
  { b3=1;Serial.print("A2close:");digitalWrite(28,LOW);digitalWrite(29,LOW);digitalWrite(30,LOW);digitalWrite(31,LOW);digitalWrite(32,LOW);b3=0;
    digitalWrite(randNumberA2,!digitalRead(randNumberA2));
    randNumberA2 = random(28,33);
    Serial.print("A2open:");
    Serial.println(randNumberA2);}
    ScanKey9();
  if(KEY9_NUM == 1)
  { b4=1;Serial.print("A2close:");digitalWrite(28,LOW);digitalWrite(29,LOW);digitalWrite(30,LOW);digitalWrite(31,LOW);digitalWrite(32,LOW);b4=0;
    digitalWrite(randNumberA2,!digitalRead(randNumberA2));
    randNumberA2 = random(28,33);
    Serial.print("A2open:");
    Serial.println(randNumberA2);}
    ScanKey10();
  if(KEY10_NUM == 1)
  { b5=1;Serial.print("A2close:");digitalWrite(28,LOW);digitalWrite(29,LOW);digitalWrite(30,LOW);digitalWrite(31,LOW);digitalWrite(32,LOW);b5=0;
    digitalWrite(randNumberA2,!digitalRead(randNumberA2));
    randNumberA2 = random(28,33);
    Serial.print("A2open:");
    Serial.println(randNumberA2);}
     }
     
   if(a<0){a=63;b=0;}
  }
  Serial.println(a);
  a--;
  
  if(a==59){
  randNumberA1 = random(23,28);
  Serial.print("A1open:");
  Serial.print(randNumberA1);
  Serial.print(",");
  randNumberA2 = random(28,33);
  Serial.print("A2open:");
  Serial.print(randNumberA2);
  Serial.print(",");
  }
   }
}


void ScanKey()
{
  KEY_NUM = 0;
  if(digitalRead(KEY) == LOW)
  {
    delay(20);
    if(digitalRead(KEY) == LOW)
    {
      KEY_NUM = 1;
      while(digitalRead(KEY) == LOW);
    }
  }
}
void ScanKey1()
{
  KEY1_NUM = 0;
  if(digitalRead(KEY1) == LOW)
  {
    delay(20);
    if(digitalRead(KEY1) == LOW)
    {
      KEY1_NUM = 1;
      while(digitalRead(KEY1) == LOW);
    }
  }
}
void ScanKey2()
{
  KEY2_NUM = 0;
  if(digitalRead(KEY2) == LOW)
  {
    delay(20);
    if(digitalRead(KEY2) == LOW)
    {
      KEY2_NUM = 1;
      while(digitalRead(KEY2) == LOW);
    }
  }
}
void ScanKey3()
{
  KEY3_NUM = 0;
  if(digitalRead(KEY3) == LOW)
  {
    delay(20);
    if(digitalRead(KEY3) == LOW)
    {
      KEY3_NUM = 1;
      while(digitalRead(KEY3) == LOW);
    }
  }
}
void ScanKey4()
{
  KEY4_NUM = 0;
  if(digitalRead(KEY4) == LOW)
  {
    delay(20);
    if(digitalRead(KEY4) == LOW)
    {
      KEY4_NUM = 1;
      while(digitalRead(KEY4) == LOW);
    }
  }
}
void ScanKey5()
{
  KEY5_NUM = 0;
  if(digitalRead(KEY5) == LOW)
  {
    delay(20);
    if(digitalRead(KEY5) == LOW)
    {
      KEY5_NUM = 1;
      while(digitalRead(KEY5) == LOW);
    }
  }
}
void ScanKey6()
{
  KEY6_NUM = 0;
  if(digitalRead(KEY6) == LOW)
  {
    delay(20);
    if(digitalRead(KEY6) == LOW)
    {
      KEY6_NUM = 1;
      while(digitalRead(KEY6) == LOW);
    }
  }
}
void ScanKey7()
{
  KEY7_NUM = 0;
  if(digitalRead(KEY7) == LOW)
  {
    delay(20);
    if(digitalRead(KEY7) == LOW)
    {
      KEY7_NUM = 1;
      while(digitalRead(KEY7) == LOW);
    }
  }
}
void ScanKey8()
{
  KEY8_NUM = 0;
  if(digitalRead(KEY8) == LOW)
  {
    delay(20);
    if(digitalRead(KEY8) == LOW)
    {
      KEY8_NUM = 1;
      while(digitalRead(KEY8) == LOW);
    }
  }
}
void ScanKey9()
{
  KEY9_NUM = 0;
  if(digitalRead(KEY9) == LOW)
  {
    delay(20);
    if(digitalRead(KEY9) == LOW)
    {
      KEY9_NUM = 1;
      while(digitalRead(KEY9) == LOW);
    }
  }
}
void ScanKey10()
{
  KEY10_NUM = 0;
  if(digitalRead(KEY10) == LOW)
  {
    delay(20);
    if(digitalRead(KEY10) == LOW)
    {
      KEY10_NUM = 1;
      while(digitalRead(KEY10) == LOW);
    }
  }
}
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-24 13:42 , Processed in 0.039821 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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