巴啦啦 发表于 2020-12-2 13:47:53

如何用Arduino完成随机抽题功能?

各位DF大佬们,用Arduino完成随机抽题功能,一个按键、两位数码管,按下按键后,随机生成01~12之间的一个数字,代表抽签的结果,如何实现,求解

gada888 发表于 2020-12-3 09:31:08

自己测试看看,另外自己加个按键功能
int randNumber;

// Define the LED digit patters, from 0 - 9
// Note that these patterns are for common cathode displays
// For common anode displays, change the 1's to 0's and 0's to 1's
// 1 = LED on, 0 = LED off, in this order:

// Arduino pin: 2,3,4,5,6,7,8
byte seven_seg_digits =
{
{ 1,1,1,1,1,1,0 },// = 0
{ 0,1,1,0,0,0,0 },// = 1
{ 1,1,0,1,1,0,1 },// = 2
{ 1,1,1,1,0,0,1 },// = 3
{ 0,1,1,0,0,1,1 },// = 4
{ 1,0,1,1,0,1,1 },// = 5
{ 1,0,1,1,1,1,1 },// = 6
{ 1,1,1,0,0,0,0 },// = 7
{ 1,1,1,1,1,1,1 },// = 8
{ 1,1,1,0,0,1,1 }   // = 9
};

void setup() {               
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
writeDot(0);// start with the "dot" off
}

void writeDot(byte dot) {
digitalWrite(9, dot);
}
   
void sevenSegWrite(byte digit) {
byte pin = 2;
for (byte segCount = 0; segCount < 7; ++segCount) {
    digitalWrite(pin, seven_seg_digits);
    ++pin;
}
}

void loop() {
// print number from 9 to 1
//for (byte count = 10; count > 0; --count) {
//   delay(1000);
//   sevenSegWrite(count - 1);

// print a random number from 1 to 6
randNumber = random(1, 7);
Serial.println(randNumber);
sevenSegWrite(randNumber);

delay(1000);
}

巴啦啦 发表于 2020-12-3 13:59:28

gada888 发表于 2020-12-3 09:31
自己测试看看,另外自己加个按键功能
int randNumber;



{:6_215:}{:6_204:}
页: [1]
查看完整版本: 如何用Arduino完成随机抽题功能?