Arduino入门之数码管实验
最近搞了个好玩的东西,无暇玩Java了,呵呵。初学arduino,写一个数码管实验的随笔。
先看一下效果。
如果有四位数码管,就可以做个时钟了。如果你非要说做的是计时器,我也不反对。:P
先来看一下数码管:

图1-数码管实物图
上下对称,各五个针脚。针脚对应显示如图2:

图2-数码管针脚与显示对应关系
最简单的原理就是:低电平亮,高电平灭。
连接方式嘛,看视频呗。数码管针脚接到板子的引脚,仅此而已。数码管的GND位据说应该接到+5V电压那个引脚,但是经测试是不给电的,还是接到GND才对。
代码前段是定义引脚号,便于使用:
int a=7;
int b=6;
int c=5;
int d=11;
int e=10;
int f=8;
int g=9;
int dp=4;
也就是说图2指示的A针脚连接Arduino上的7号引脚,以此类推。当然不能用导线直接连,220欧的电阻如果可以够得着就直接连,够不着再用导线延长。
看一下部分代码吧:
1 int a=7;
2 int b=6;
3 int c=5;
4 int d=11;
5 int e=10;
6 int f=8;
7 int g=9;
8 int dp=4; //dp是小数点哦亲 :~
9
10 //数字0的显示
11 void digital_0(void)
12 {
13 unsigned char j;
14 for(j=5;j<=8;j++)
15 digitalWrite(j,HIGH);
16 digitalWrite(e,HIGH);
17 digitalWrite(d,HIGH);
18 digitalWrite(g,LOW); //中间一横,不亮
19 digitalWrite(dp,LOW); //小数点,不亮
20 }
21
22 //1-9略,虽然我的视频里只有1-9。
23
24 void setup()
25 {
26 int i;
27 for(i=4;i<=11;i++)
28 pinMode(i,OUTPUT); //设置4~11引脚为输出模式,相对应的INPUT就是输入模式了,例如遥控器输入通过红外线传递的脉冲信号,本实验未用到。
29 }
30 void loop()
31 {
32 while(1)//死循环
33 {
34 digital_0();//显示数字0
35 delay(1000);//间隔1s,做时钟的话调整这里就可以。
36 digital_1();
37 delay(1000);
38 digital_2();
39 delay(1000);
40 digital_3();
41 delay(1000);
42 digital_4();
43 delay(1000);
44 digital_5();
45 delay(1000);
46 digital_6();
47 delay(1000);
48 digital_7();
49 delay(1000);
50 digital_8();
51 delay(1000);
52 digital_9();
53 delay(1000);
54 }
55 }
过段时间找个一起玩的,让他买个蓝牙模块什么的,玩点高级的。确实挺好玩,有兴趣的可以买个板子试试。
浙公网安备 33010602011771号