|
|

楼主 |
发表于 2015-12-30 13:20:43
|
显示全部楼层
gthrtg 发表于 2015-12-29 21:17 
大神我有一个关于随机数问题想要请教。我想按下总开关按钮,然后出现2个随机数(依旧不相同),下一个的随 ...
#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
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 a=63;int b=0;int c=0;int interval = 1000;
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);
}
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)
{
digitalWrite(randNumberA1,!digitalRead(randNumberA1));
randNumberA1 = random(23,33);
Serial.println(randNumberA1);
}
ScanKey2();
if(KEY2_NUM == 1)
{
digitalWrite(randNumberA1,!digitalRead(randNumberA1));
randNumberA1 = random(23,33);
Serial.println(randNumberA1);
}
ScanKey3();
if(KEY3_NUM == 1)
{
digitalWrite(randNumberA1,!digitalRead(randNumberA1));
randNumberA1 = random(23,33);
Serial.println(randNumberA1);
}
ScanKey4();
if(KEY4_NUM == 1)
{
digitalWrite(randNumberA1,!digitalRead(randNumberA1));
randNumberA1 = random(23,33);
Serial.println(randNumberA1);
}
ScanKey5();
if(KEY5_NUM == 1)
{
digitalWrite(randNumberA1,!digitalRead(randNumberA1));
randNumberA1 = random(23,33);
Serial.println(randNumberA1);
}
}
if(a<=0){a=63;b=0;}
}
Serial.println(a);
a--;
if(a==59){
randNumberA1 = random(23,33);
Serial.print("A1:");
Serial.print(randNumberA1);
Serial.print(",");
randNumberA2 = random(23,33);
Serial.print("A2:");
while(randNumberA1==randNumberA2){
randNumberA2 = random(23,33);
c++;}
Serial.println(" " +String(randNumberA2) + "(Repeat:" + c + ")" );
randNumberB1 = random(33,43);
Serial.print("B1:");
Serial.print(randNumberB1);
Serial.print(",");
randNumberB2 = random(33,43);
Serial.print("B2:");
while(randNumberB1==randNumberB2){
randNumberB2 = random(33,43);
c++;}
Serial.println(" " +String(randNumberB2) + "(Repeat:" + c + ")" );
}
}
}
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);
}
}
} |
|