Oh!Coder

Coding Life

好玩的Arduino-让LED神灯闪烁

| Comments

Hi,大家好!上一次我们试着让Arduino点亮了一盏LED神灯。这一次我们更进一步,让这盏LED神灯闪烁起来!

像之前一样,我们首先需要在硬件和软件方面做一些准备。

硬件方面

arduino

图片来源:Arduino-UNO-LED

具体包括如下:

  • Arduino UNO电路板(1块)
  • mini面包板(1块)
  • 220欧姆电阻(1个)
  • LED灯(1盏)
  • 面包线(2根)

软件方面

只需要Arduino官方提供的IDE即可。

准备好上面这些之后,接下来只要连接好电路,敲几行简单的代码,就可以让我们的神灯闪烁起来!

连接电路

arduino-led

图片来源:Arduino连接LED电路示意图

跟点亮LED神灯一样,只需要简单的一步,即可连接好我们的电路。唯一需要注意的是,LED的长针脚要插入13号孔,短针脚插入GND地线孔内,这一点千万别搞反了哦!最后,需要用USB线把Arduino连接到电脑上,连好之后会看到Arduino电路板上的一个小电源灯被点亮!

添加几行代码

好!最后我们需要添加两行简单的代码,即可大功告成!

首先打开Arduino的IDE,新建一个Arduino项目窗口。

arduino-ide-new

图片来源:Arduino官方IDE

新建完成之后,需要向其中添加几行代码。

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
int led = 13;  // 定义针脚号,数字类型为整型

// 对Arduino电路板或相关状态进行初始化方法
void setup() {
  // 设定13号针脚为输出状态,
  // pinMode()方法是Arduino类库提供的系统方法,
  // 调用的时候需要传入两个参数。
  // 一个是针脚号,另一个是针脚号的状态。
  pinMode(led, OUTPUT);
}
// 系统调用,无限循环方法
void loop() {
  // 向13号针脚输出值为高电压状态,
  // 此值可以点亮LED神灯。
  // digitalWrite()方法也是Arduino类库提供的系统方法,
  // 调用的时候需要传入两个参数,
  // 一个是针脚号,另一个是针脚号的状态。
  // 这里需要注意的是,pinMode()方法是初始化针脚状态,
  // digitalWrite()方法是向此针脚号不断发送状态。
  digitalWrite(led, HIGH);
  // delay()方法是Arduino自身类库提供的方法,
  // 功能是让时间延迟,其中传入的参数为毫秒单位,
  // 1000毫秒 = 1秒
  delay(1000);
  // 此处向Arduino的13针脚发送低电压状态,
  // 此状态可以让LED神灯熄灭
  digitalWrite(led, LOW);
  // 再次延迟1000毫秒,也即1秒钟,
  delay(1000);
  // 随后进入下一次loop循环,
  // 即调用上面的digitalWrite(led, HIGH)方法,
  // 让LED神灯再次点亮。
  // 如此不断循环下去。
}

敲完收工!看起来代码好长的样子,注意千万别被上面冗长的中文注释所吓住!删除注释,比起点亮LED神灯,其实我们只多添加了三行代码!而且三行代码里还有两行是重复的!不能要求再简单了!

新添加的三行代码里,出现了一个新面孔,那就是delay()方法,这个方法的功能是进行时间延迟的,方法的调用需要传入一个时间参数,参数的单位为毫秒,比如传入1000,那么等于在这行代码上停留1秒钟,随后程序才会自动继续向下执行。

好!接下来还剩下最后一步,把代码烧入Arduino!在点亮LED神灯那一节,我们知道这一步可以一气呵成,只需要点击新建项目文件上,那个指向右侧箭头图标,即可自动完成代码的烧入。

arduino-menu

图片来源:Arduino官方IDE的文件编辑菜单选项(注意此处不是指Arduino顶部工具栏)

如果在此操作中碰到了连接Arduino的失败错误,可以查看点亮LED神灯那一节中,关于这部分需要注意的两个小细节。

总结

是不是很简单?其实只需要多加一个新方法,就可以实现LED神灯的闪烁效果!这一节中,我们新认识一个延时方法,名字叫delay(),只是多添加了这一个方法,就完成了最终效果。So easy!

下期预告

这一节我们只是实现了让LED神灯点亮和熄灭,期间只有两个状态。那如何让LED神灯逐步点亮和逐步熄灭呢?嗯,下一次我们将迎接一个新的挑战,让LED神灯逐渐变亮和逐渐熄灭!

Comments