Arduino篇—电子骰子

电子说

1.3w人已加入

描述

课程目标

  • 按键控制数码管电路的搭建
  • 随机数的应用

相关知识

在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); //显示随机数

}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分