LED闪烁实验

LED工作电压一般 为 1.5-2.0V,工作电流一般为 10-20ma,反向击穿电压为 5V。控制板逻辑电路供电为 5V。根据以上参数假设 LED 工作电压选用 1.7V,工作电流选用 15ma,限流电阻=(总电压-LED 电压)/电流,所以限流电阻 =(5-1.7)/0.015=220Ω。

接线图

LED闪烁实验

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//设置控制 Led 的数字 IO 脚
int Led1 = 1;
int Led2 = 2;
int Led3 = 3;
int Led4 = 4;
int Led5 = 5;
int Led6 = 6;
//led 灯花样显示样式 1 子程序
void style_1(void)
{
unsigned char j;
for(j=1;j<=6;j++)//每隔 200ms 依次点亮 1~6 引脚相连的led 灯
{
digitalWrite(j,HIGH);//点亮 j 引脚相连的 led 灯
delay(200);//延时 200ms
}
for(j=6;j>=1;j--)//每隔 200ms 依次熄灭 6~1 引脚相连的 led灯
{
digitalWrite(j,LOW);//熄灭 j 引脚相连的 led 灯
delay(200);//延时 200ms
}
}
//灯闪烁子程序
void flash(void)
{
unsigned char j,k;
for(k=0;k<=1;k++)//闪烁两次
{
for(j=1;j<=6;j++)//点亮 1~6 引脚相连的 led 灯
digitalWrite(j,HIGH);//点亮与 j 引脚相连的 led 灯
delay(200);//延时 200ms
for(j=1;j<=6;j++)//熄灭 1~6 引脚相连的 led 灯
digitalWrite(j,LOW);//熄灭与 j 引脚相连的 led 灯
delay(200);//延时 200ms
}
}
//led 灯花样显示样式 2 子程序
void style_2(void)
{
unsigned char j,k;
k=1;//设置 k 的初值为 1
for(j=3;j>=1;j--)
{
digitalWrite(j,HIGH);//点亮灯
digitalWrite(j+k,HIGH);//点亮灯
delay(400);//延时 400ms
k +=2;//k 值加 2
}
k=5;//设置 k 值为 5
for(j=1;j<=3;j++)
{
digitalWrite(j,LOW);//熄灭灯
digitalWrite(j+k,LOW);//熄灭灯
delay(400);//延时 400ms
k -=2;//k 值减 2
}
}
//led 灯花样显示样式 3 子程序
void style_3(void)
{
unsigned char j,k;//led 灯花样显示样式 3 子程序
k=5;//设置 k 值为 5
for(j=1;j<=3;j++)
{
digitalWrite(j,HIGH);//点亮灯
digitalWrite(j+k,HIGH);//点亮灯
delay(400);//延时 400ms
digitalWrite(j,LOW);//熄灭灯
digitalWrite(j+k,LOW);//熄灭灯
k -=2;//k 值减 2
}
k=3;//设置 k 值为 3
for(j=2;j>=1;j--)
{
digitalWrite(j,HIGH);//点亮灯
digitalWrite(j+k,HIGH);//点亮灯
delay(400);//延时 400ms
digitalWrite(j,LOW);//熄灭灯
digitalWrite(j+k,LOW);//熄灭灯
k +=2;//k 值加 2
}
}
void setup()
{
unsigned char i;
for(i=1;i<=6;i++)//依次设置 1~6 个数字引脚为输出模式
pinMode(i,OUTPUT);//设置第 i 个引脚为输出模式
}
void loop()
{
style_1();//样式 1
flash();//闪烁
style_2();//样式 2
flash();//闪烁
style_3();//样式 3
flash();//闪烁
}

样式 1:16 号灯逐个点亮,然后 61 逐个熄灭。

样式 2:3,4 号灯先亮,然后 2,5 号再亮,最后 1,6 号两。接着 1, 6 号灯熄灭,再 2,5 号熄灭,最后 3,4 号熄灭。

样式3:3,4 号灯亮,然后 3,4 号熄灭 2,5 号亮,然后 2,5 号熄灭
1,6 号亮,再 1,6 号熄灭 2,5 号亮,最后 2,5 号熄灭 3,4 号亮。