新手电子骰子制作感想
本帖最后由 D.Rainbow 于 2016-1-29 20:34 编辑今天开始做arduino了,哈哈,作为新手,做出第一个比较实用的小东西还是挺开心。{:5_180:}{:5_180:}忍不住想来说一些感想。{:5_180:}
准备工作:
1、一颗敢想敢做的心(JUST DO IT),拒做键盘侠。PS:没拿过广告费哦{:5_161:}
2、Arduino Uno R3{:5_148:}及其套餐:USB下载线。
3、470Ω电阻X7。(原谅手残x1)如图
4、四脚开关X1.(原谅手残x2)
5、面包板X1。
6、还有主角:共阴数码管
7、一坨导线。。。
8、知识储备
共阴八极管:(请原谅XN){:5_198:}
如图,共阴八极管的原理就是图中引脚3,8接地后,再在对应数字引脚输入电压,就可以使得图中对应一段的LED亮起,经过组合后,便能显示出数字。(PS:我判定正反的标志是八极管上面有一个圈,对应着图中引脚十(个人认为是小数点,所以应该在右下方,嘿嘿机智如我))
接下来是代码区,一坨在那。。。(使用的是穷举法switch()函数,有点烦,希望在研究出另一种更简便方法)
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);
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);
}
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 , LOW );
digitalWrite( C_LED , LOW );
digitalWrite( D_LED , HIGH );
digitalWrite( E_LED , LOW );
digitalWrite( F_LED , LOW );
digitalWrite( G_LED ,HIGH ); //数码管显示“1”
break;
}
case (2) :
{
Serial.println(2);
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 , LOW ); //数码管显示“2”
break;
}
case (3) :
{
Serial.println(3);
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 ); //数码管显示“3”
break;
}
case (4) :
{
Serial.println(4);
digitalWrite( A_LED , HIGH );
digitalWrite( B_LED , HIGH );
digitalWrite( C_LED , LOW );
digitalWrite( D_LED , HIGH );
digitalWrite( E_LED , LOW );
digitalWrite( F_LED , LOW );
digitalWrite( G_LED , HIGH ); //数码管显示“4”
break;
}
case (5) :
{
Serial.println(5);
digitalWrite( A_LED , HIGH );
digitalWrite( B_LED , HIGH );
digitalWrite( C_LED , HIGH );
digitalWrite( D_LED , LOW );
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 , HIGH );
digitalWrite( C_LED , HIGH );
digitalWrite( D_LED , LOW );
digitalWrite( E_LED , HIGH );
digitalWrite( F_LED , HIGH );
digitalWrite( G_LED , HIGH ); //数码管显示“6”
break;
}
}
delay(1000);
}
}
接线如图(sorry,暂时还没装Arduino图形界面那个软件,所以暂时只能用多图给你们看啦{:5_161:}{:5_161:})
感想:做每一个arduino的小项目或教程时候,一定要不满足于复制代码,以及简单的复制接线,应该要去寻找项目之中的内涵。比如八极管的工作原理,代码中各代码的含义,学会积累,毕竟以后的创作是不可能有人再给你复制黏贴的,有些代码,常用元件的原理及使用方法必须牢记于心。所谓的基础教程,就是先让我们了解一些基本的元件知识以及常用的代码含义,这是一个吸收的过程,等到有了足够的吸收才能有输出,也就是创作阶段,将我们所思所想真正的表达出来。这恰恰是我们比较欠缺的,是金子总会发光,但也要主动去迎着阳光一面,只停留在黑暗角落中是不可能有机会的。将手从键盘拿开,让它多在arduino上鼓捣会更容易实现电子梦想哦。当然凡是也都是需要毅力的,也希望大家能够执着于自己喜欢的事物,即使是顽固也不过分。作为入门的新手的一份感想,希望能够勉励自己,致未来的自己,致我的Arduino,单片机生涯的开始。电子创客:
WE ARE!
字里行间好热血{:5_185:} {:5_175:}楼主你好认真…… 楼主 好认真啊满腔热血 吹口琴的钢铁侠 发表于 2016-1-29 21:02
字里行间好热血
哈哈因为年轻,所以冲动{:5_192:} iooops 发表于 2016-1-30 00:13
楼主你好认真……
应该的 吼吼{:5_195:} 电子骰子,好熟悉 有小视频不!楼主快来一发嘎 iooops 发表于 2016-1-31 16:04
有小视频不!楼主快来一发嘎
过几天做新项目会考虑加上小视频哦{:5_161:} 丄帝De咗臂 发表于 2016-1-31 14:40
电子骰子,好熟悉
大神见笑啦{:5_166:} 不错不错 D.Rainbow 发表于 2016-1-31 21:14
大神见笑啦
木有木有,我也做过电子骰子,蛮好的 JUST DO IT {:5_148:} Ash 发表于 2016-2-2 18:06
JUST DO IT
FIGHT TOGETHER! Ash 发表于 2016-2-2 18:06
JUST DO IT
FIGHT TOGETHER! dsweiliang 发表于 2016-2-1 08:50
不错不错
新手项目而已哈哈
页:
[1]