课程目标
- 按键控制数码管电路的搭建
- 随机数的应用
相关知识
在Arduino中,random()函数用来产生伪随机数,可以传入一个区间,产生此区间内的随机数。
random()
- 描述:生成伪随机数。
- 函数原型:
- random(max)
- random(min,max)
- 参数:
- min: 随机数区间下限值,且包括在内。此参数可选,省略则从0开始。
- max: 随机数区间上限值,且不包括在内。
- 返回值:min和max-1之间的随机数。
randomSeed()
- 描述:初始化随机数生成器。
- 函数原型:randomSeed(seed)
- 参数:用于初始化伪随机序列的数字,随机数种子。
- 返回值:没有。
电路搭建
所需材料
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); //显示随机数
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
数码管
+关注
关注
32文章
1882浏览量
91117 -
生成器
+关注
关注
7文章
315浏览量
21010 -
Arduino
+关注
关注
188文章
6469浏览量
187058 -
随机数
+关注
关注
0文章
18浏览量
12017
发布评论请先 登录
相关推荐
arduino学习笔记8 - 数字骰子实验
前几次做了数码管实验和按键控制LED的实验,通过实验大家已经学会了两种器件的基本用法。这次使用数码管与按键进行组合,做一个简易数字骰子。数字筛子的基本原理是数码管快速在1-8之间循环跳动,当按下按键
发表于 10-23 17:38
评论