电子说
课程目标
相关知识
在Arduino中,random()函数用来产生伪随机数,可以传入一个区间,产生此区间内的随机数。
random()
randomSeed()
电路搭建
所需材料
Arduino UNO * 1
共阳极数码管 * 1
按键 * 1
杜邦线若干
*接线方式
*
参考前几期课程,进行综合接线。
程序流程分析
程序编写
练习:随机数显示
根据要求,编写程序实现按键数码管显示0~9随机数功能。
图形化方式:
代码方式:
/* 项目名称:电子骰子
项目时间:2022.02.17
项目作者:MRX
*/
int Pin[8] = {2,3,4,5,6,7,8};//定义引脚数组
int num;
unsigned char Num[10][7] =
//a b c d e f g
{{0, 0, 0, 0, 0, 0, 1}, //0
{1, 0, 0, 1, 1, 1, 1}, //1
{0, 0, 1, 0, 0, 1, 0}, //2
{0, 0, 0, 0, 1, 1, 0}, //3
{1, 0, 0, 1, 1, 0, 0}, //4
{0, 1, 0, 0, 1, 0, 0}, //5
{0, 1, 0, 0, 0, 0, 0}, //6
{0, 0, 0, 1, 1, 1, 1}, //7
{0, 0, 0, 0, 0, 0, 0}, //8
{0, 0, 0, 0, 1, 0, 0}, //9
};
void setup()
{
for (int i = 2; i <= 8; i++)
{
pinMode(i, OUTPUT); //设置2~8引脚为输出模式
}
pinMode(10,INPUT);
randomSeed(analogRead(0));
}
//根据索引显示数字
void showNum(int index)
{
digitalWrite(2, Num[index][0]); //设置a 引脚的电平
digitalWrite(3, Num[index][1]); //设置b 引脚的电平
digitalWrite(4, Num[index][2]); //设置c 引脚的电平
digitalWrite(5, Num[index][3]); //设置d 引脚的电平
digitalWrite(6, Num[index][4]); //设置e 引脚的电平
digitalWrite(7, Num[index][5]); //设置f 引脚的电平
digitalWrite(8, Num[index][6]); //设置g 引脚的电平
}
void loop()
{
if(digitalRead(10)){
num = random(10); //每0.5秒产生随机数
delay(500);
}
showNum(num); //显示随机数
}
全部0条评论
快来发表一下你的评论吧 !