Arduino-6-智能骰子实验

骰子玩具

小时候的我们每个人都玩过这样一种俗称shai子,官方成为骰(tou)子的玩具,那么这种骰子有什么特点呢?
答:每一次掷出的数字都是不确定的,没有规律的。
那么,今天我们来了解一款有意思的创客教育的Arduino实验——智能骰子吧!


Arduino
【实验介绍】

本次实验是利用Arduino套件,制作一个由按键控制使得数码管随机显示数字的实验。

【实验用具】

USB下载线×1
大面包板×1
共阴极八段数码管×1
电阻×8
按键开关×1
跳线若干

【实验电路图】
智能骰子实验

电路图原理
【实验代码】
int switchPin=2;    //定义switchPin引脚为2
#define A_LED 3
#define B_LED 4
#define C_LED 5
#define D_LED 6
#define E_LED 7
#define F_LED 8
#define G_LED 9     //数码管中表示数字的引脚A~B分别连接第3~9引脚          
int temp;
void setup()
{
    Serial.begin(9600); //设置串口波特率为9600
    pinMode(switchPin,INPUT);
    pinMode(A_LED,OUTPUT);  
    pinMode(B_LED,OUTPUT);  
    pinMode(C_LED,OUTPUT); 
    pinMode(D_LED,OUTPUT); 
    pinMode(E_LED,OUTPUT); 
    pinMode(F_LED,OUTPUT); 
    pinMode(G_LED,OUTPUT); //设置2为输入引脚;3~9为输出引脚
}

void loop()
{
  {
      temp=random(1,7); //产生一个1~6中的随机数
      switch (temp){ 
      case (1) : 
      {
        Serial.println(1);  //通过串口监视器可以同步查看产生的随机数
        digitalWrite( A_LED , LOW ); 
        digitalWrite( B_LED , HIGH ); 
        digitalWrite( C_LED , HIGH ); 
        digitalWrite( D_LED , LOW ); 
        digitalWrite( E_LED , LOW ); 
        digitalWrite( F_LED , LOW ); 
        digitalWrite( G_LED , LOW );    //数码管显示“1”
        break;
        }
      case (2) : 
      {
        Serial.println(2);
        digitalWrite( A_LED , HIGH ); 
        digitalWrite( B_LED , HIGH ); 
        digitalWrite( C_LED , LOW ); 
        digitalWrite( D_LED , HIGH ); 
        digitalWrite( E_LED , HIGH ); 
        digitalWrite( F_LED , LOW ); 
        digitalWrite( G_LED , HIGH );   //数码管显示“2”
        break;
      }
      case (3) : 
      {
        Serial.println(3);
        digitalWrite( A_LED , HIGH ); 
        digitalWrite( B_LED , HIGH ); 
        digitalWrite( C_LED , HIGH ); 
        digitalWrite( D_LED , HIGH ); 
        digitalWrite( E_LED , LOW ); 
        digitalWrite( F_LED , LOW ); 
        digitalWrite( G_LED , HIGH );   //数码管显示“3”
        break;
      }
      case (4) : 
      {
        Serial.println(4);
        digitalWrite( A_LED , LOW ); 
        digitalWrite( B_LED , HIGH ); 
        digitalWrite( C_LED , HIGH ); 
        digitalWrite( D_LED , LOW ); 
        digitalWrite( E_LED , LOW ); 
        digitalWrite( F_LED , HIGH ); 
        digitalWrite( G_LED , HIGH );   //数码管显示“4”
        break;
      }
      case (5) : 
      {
        Serial.println(5);
        digitalWrite( A_LED , HIGH ); 
        digitalWrite( B_LED , LOW ); 
        digitalWrite( C_LED , HIGH ); 
        digitalWrite( D_LED , HIGH ); 
        digitalWrite( E_LED , LOW ); 
        digitalWrite( F_LED , HIGH ); 
        digitalWrite( G_LED , HIGH );   //数码管显示“5”
        break;
      }
      case (6) : 
      {
        Serial.println(6);
        digitalWrite( A_LED , HIGH ); 
        digitalWrite( B_LED , LOW ); 
        digitalWrite( C_LED , HIGH ); 
        digitalWrite( D_LED , HIGH ); 
        digitalWrite( E_LED , HIGH ); 
        digitalWrite( F_LED , HIGH ); 
        digitalWrite( G_LED , HIGH );   //数码管显示“6”
        break;
      }
     }
    delay(1000);
  }
}
【实验知识点储备】
了解随机数
随机数的产生历史

推荐大家看《时间简史》,里面也有提及随机数哦~


随机数分类与产生

随机数种子
函数1.png

随机数函数
随机数函数

数码管知识
数码管简介

七段数码管
image.png

引脚以及排序

共阳极结构图

共阴极结构图

你可能感兴趣的:(Arduino-6-智能骰子实验)