节假日酒桌上耍腻了普通骰子?对不能把握骰子的读数耿耿于怀?
不要担心!智能骰子来啦!小奥亲授秘籍,手把手教你搭建一款智能骰子:从此,智能数字随心控,赢遍天下无敌手!
打造一款智能骰子首需利器:八段数码管。
八段数码管是由多个发光LED封装到一起组成的“8”字型输出器件,每一个笔画为一个发光LED。
智能骰子工作原理:先由按键触发random(min,max)函数产生一个随机数,再通过CarDuinoUNO R3控制器控制不同笔画位置的LED灯从而使八段数码管显示不同数字。
主要配件:
CarDuino UNO R3控制器×1
USB下载线×1
大面包板×1
跳线若干
共阴极八段数码管×1
电阻×8
按键开关×1
智能骰子组装原理图
智能骰子组装面包板接插图
智能骰子实物连接图
按上面所示的面包板接插图及原理图接好电路,然后将下面的程序下载到CarDuino UNO R3控制器中。
智能骰子实验程序:
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()
{
if (LOW== digitalRead(switchPin)) //如果按键按下
{
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);
}
}
按下按键,函数random(1,7)产生一个{1、2、3、4、5、6}之中的随机数,显示到八段数码管,并且通过串口监视器同步观察随机数值(如下图所示),从而实现了智能骰子的功能。
串口监视器返回随机数
好啦!到这里,一款智能骰子就组装好啦!啥?你嫌它太暴露又太丑?发挥你的奇思妙想,把它变得美观又实用吧,期待你的作品哦~
奥松机器人《爱上Arduino》互动入门套件,组装智能骰子就靠它!
《爱上Arduino》互动入门套件,专为Arduino爱好者精心打造,套件内基本元件丰富,更配置了直流电机、风扇、干簧管、磁钢、倾角传感器、红外热释电传感器等器材。即便未学过电子电路知识的你也可以组装出智能骰子、智能门铃、流水灯等等,还可以做出酷炫的报警器:满足你的动手需求!想想拥有自己独设的一款电子神器是何等的自信和威风~
点击此处秒购《爱上Arduino》互动入门套件,为酷爱电子的Ta留一件吧~
相关文章:
【创客学堂】利用红外热释电传感器制作属于自己的报警神器
【创客学堂】Arduino开发板头号名人:Intel Galileo的十大特性
【创客学堂】Arduino与树莓派各自有什么优缺点?
【创客学堂】Instagram上的树莓派飞屋环游记
【创客学堂】树莓派+Tor 看小伙伴们如何躲开NSA追踪
----------------------------------------------------------------------------------------------------------------
奥松机器人官网:www.robotbase.cn
微信号:搜索公众号“奥松机器人”
QQ群: 271230889(讨论,解惑)
微博:@奥松机器人基地
----------------------------------------------------------------------------------------------------------------
温馨提示:予人玫瑰,手留余香;如果你喜欢这篇文章,不妨转发推荐给你身边的朋友!