144 lines
3.4 KiB
C++
Executable File
144 lines
3.4 KiB
C++
Executable File
/*
|
|
24 MC猜数字 - 5 完成制作 - 2
|
|
太极创客
|
|
www.taichi-maker.com
|
|
|
|
此程序用于太极创客<<零基础入门学用Arduino教程>>
|
|
24 MC猜数字 - 5 完成制作 - 2
|
|
|
|
修改了getRandomNumber函数。目前该函数每次调用后将显示5个随机数字。
|
|
这五个随机数字将通过串口监视器显示出来。并且最后一个随机数字将显示在LED数码管上。
|
|
|
|
2017-04-23
|
|
*/
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
int pinNumber = 3;
|
|
while(pinNumber <= 9){
|
|
pinMode(pinNumber, OUTPUT);
|
|
pinNumber = pinNumber + 1;
|
|
}
|
|
randomSeed(analogRead(A0));
|
|
}
|
|
|
|
// the loop function runs over and over again forever
|
|
void loop() {
|
|
int myNumber = getRandomNumber(0, 10);
|
|
displayNumber(myNumber);
|
|
delay(5000);
|
|
displayClear();
|
|
delay(500);
|
|
}
|
|
|
|
int getRandomNumber(int minNumber, int maxNumber){
|
|
int randomNumber;
|
|
|
|
int i;
|
|
while(i < 5){
|
|
i = i + 1;
|
|
randomNumber = random(minNumber,maxNumber);
|
|
displayNumber(randomNumber);
|
|
delay(100);
|
|
displayClear();
|
|
delay(100);
|
|
|
|
Serial.print("i = ");
|
|
Serial.println(i);
|
|
Serial.print("randomNumber = ");
|
|
Serial.println(randomNumber);
|
|
Serial.println("");
|
|
|
|
}
|
|
return randomNumber;
|
|
}
|
|
void displayNumber(int ledNumber){
|
|
switch(ledNumber){
|
|
case 1: //显示1
|
|
digitalWrite(4, HIGH);
|
|
digitalWrite(7, HIGH);
|
|
break;
|
|
case 2: //显示2
|
|
digitalWrite(3, HIGH);
|
|
digitalWrite(4, HIGH);
|
|
digitalWrite(5, HIGH);
|
|
digitalWrite(8, HIGH);
|
|
digitalWrite(9, HIGH);
|
|
break;
|
|
case 3: //显示3
|
|
digitalWrite(3, HIGH);
|
|
digitalWrite(4, HIGH);
|
|
digitalWrite(5, HIGH);
|
|
digitalWrite(7, HIGH);
|
|
digitalWrite(8, HIGH);
|
|
break;
|
|
case 4: //显示4
|
|
digitalWrite(4, HIGH);
|
|
digitalWrite(5, HIGH);
|
|
digitalWrite(6, HIGH);
|
|
digitalWrite(7, HIGH);
|
|
break;
|
|
case 5: //显示5
|
|
digitalWrite(3, HIGH);
|
|
digitalWrite(5, HIGH);
|
|
digitalWrite(6, HIGH);
|
|
digitalWrite(7, HIGH);
|
|
digitalWrite(8, HIGH);
|
|
break;
|
|
case 6: //显示6
|
|
digitalWrite(3, HIGH);
|
|
digitalWrite(5, HIGH);
|
|
digitalWrite(6, HIGH);
|
|
digitalWrite(7, HIGH);
|
|
digitalWrite(8, HIGH);
|
|
digitalWrite(9, HIGH);
|
|
break;
|
|
case 7: //显示7
|
|
digitalWrite(3, HIGH);
|
|
digitalWrite(4, HIGH);
|
|
digitalWrite(7, HIGH);
|
|
break;
|
|
case 8: //显示8
|
|
digitalWrite(3, HIGH);
|
|
digitalWrite(4, HIGH);
|
|
digitalWrite(5, HIGH);
|
|
digitalWrite(6, HIGH);
|
|
digitalWrite(7, HIGH);
|
|
digitalWrite(8, HIGH);
|
|
digitalWrite(9, HIGH);
|
|
break;
|
|
case 9: //显示9
|
|
digitalWrite(3, HIGH);
|
|
digitalWrite(4, HIGH);
|
|
digitalWrite(5, HIGH);
|
|
digitalWrite(6, HIGH);
|
|
digitalWrite(7, HIGH);
|
|
digitalWrite(8, HIGH);
|
|
break;
|
|
case 0: //显示0
|
|
digitalWrite(3, HIGH);
|
|
digitalWrite(4, HIGH);
|
|
digitalWrite(6, HIGH);
|
|
digitalWrite(7, HIGH);
|
|
digitalWrite(8, HIGH);
|
|
digitalWrite(9, HIGH);
|
|
break;
|
|
default: //显示默认
|
|
digitalWrite(4, HIGH);
|
|
digitalWrite(5, HIGH);
|
|
digitalWrite(7, HIGH);
|
|
digitalWrite(8, HIGH);
|
|
digitalWrite(9, HIGH);
|
|
}
|
|
}
|
|
|
|
void displayClear(){
|
|
digitalWrite(3, LOW);
|
|
digitalWrite(4, LOW);
|
|
digitalWrite(5, LOW);
|
|
digitalWrite(6, LOW);
|
|
digitalWrite(7, LOW);
|
|
digitalWrite(8, LOW);
|
|
digitalWrite(9, LOW);
|
|
}
|
|
|