玩转LED

玩转LED

点亮

以Arduino Uno R3为例,板载LED和13号管脚连通。
我们可以使用以下程序点亮LED

1
2
3
4
5
6
7
void setup(){
pinMode(13, OUTPUT);//定义13号管脚为输出模式
}

void loop(){
digitalWrite(13,HIGH);//13号管脚输出为高电平
}

同理,我们可以将LED熄灭

1
2
3
4
5
6
7
void setup(){
pinMode(13, OUTPUT);
}

void loop(){
digitalWrite(13,LOW);//13号管脚输出为低电平
}

闪烁

1
2
3
4
5
6
7
8
9
10
11
void setup(){
pinMode(13, OUTPUT);//定义13号管脚为输出模式
}

void loop(){
digitalWrite(13,LOW);//13号管脚输出为低电平
delay(1000);//延时1000ms,即1s
digitalWrite(13,HIGH);//13号管脚输出为高电平
delay(1000);

}

呼吸

板载的贴片LED无法实现此效果
采用PWM来让LED灯珠实现呼吸灯的效果

连线

LED正极–电阻–3
LED负极–GND

程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void setup(){
pinMode(3, OUTPUT);//定义13号管脚为输出模式
}

void loop(){
for (int i = 0; i <= 255; i = i + (5)) {//for循环步长为5,控制明暗变化细腻程度
analogWrite(3, i);//13号管脚进行模拟输出
delay(20);//延时20ms,控制呼吸速率
}
for (int i = 255; i >= 0; i = i + (-5)) {
analogWrite(3, i);
delay(20);
}

}

跑马

这里使用三枚LED灯珠进行演示

连线

2 3 4号管脚顺序接上三枚LED灯珠的正极
负极统一接到GND管脚

程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void setup(){
for(int i=2;i<=4;i++) {
pinMode(i, OUTPUT);//定义2 3 4号管脚为输出模式
}
}

void loop(){
for (int i = 2; i <= 4; i = i + (1)) {
pinMode(i, OUTPUT);
digitalWrite(i,HIGH);
delay(100);
pinMode(i, OUTPUT);
digitalWrite(i,LOW);
}
for (int i = 4; i >= 2; i = i + (-1)) {
pinMode(i, OUTPUT);
digitalWrite(i,HIGH);
delay(100);
pinMode(i, OUTPUT);
digitalWrite(i,LOW);
}

}

以上就是arduino控制led的一些基本用法了,搭配其他硬件或传感器可以实现更为丰富的效果