骰子玩具
小时候的我们每个人都玩过这样一种俗称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
引脚以及排序
共阳极结构图
共阴极结构图