本帖最后由 D.Rainbow 于 2016-1-29 20:34 编辑
今天开始做Arduino了,哈哈,作为新手,做出第一个比较实用的小东西还是挺开心。忍不住想来说一些感想。
准备工作:
1、一颗敢想敢做的心(JUST DO IT),拒做键盘侠。PS:没拿过广告费哦
2、Arduino Uno R3及其套餐:USB下载线。
3、470Ω电阻X7。(原谅手残x1)如图
4、四脚开关X1.(原谅手残x2)
5、面包板X1。
6、还有主角:共阴数码管
7、一坨导线。。。
8、知识储备
共阴八极管:(请原谅XN)
如图,共阴八极管的原理就是图中引脚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图形界面那个软件,所以暂时只能用多图给你们看啦)
感想:做每一个arduino的小项目或教程时候,一定要不满足于复制代码,以及简单的复制接线,应该要去寻找项目之中的内涵。比如八极管的工作原理,代码中各代码的含义,学会积累,毕竟以后的创作是不可能有人再给你复制黏贴的,有些代码,常用元件的原理及使用方法必须牢记于心。所谓的基础教程,就是先让我们了解一些基本的元件知识以及常用的代码含义,这是一个吸收的过程,等到有了足够的吸收才能有输出,也就是创作阶段,将我们所思所想真正的表达出来。这恰恰是我们比较欠缺的,是金子总会发光,但也要主动去迎着阳光一面,只停留在黑暗角落中是不可能有机会的。将手从键盘拿开,让它多在arduino上鼓捣会更容易实现电子梦想哦。当然凡是也都是需要毅力的,也希望大家能够执着于自己喜欢的事物,即使是顽固也不过分。作为入门的新手的一份感想,希望能够勉励自己,致未来的自己,致我的Arduino,单片机生涯的开始。电子创客:
WE ARE!
|