Hi,大家好!上一次我们试着让Arduino点亮了一盏LED神灯。这一次我们更进一步,让这盏LED神灯闪烁起来!
像之前一样,我们首先需要在硬件和软件方面做一些准备。
硬件方面
image.png

具体包括如下:

  • Arduino UNO电路板(1块)
  • mini面包板(1块)
  • 220欧姆电阻(1个)
  • LED灯(1盏)
  • 面包线(2根)
软件方面只需要Arduino官方提供的IDE即可。
准备好上面这些之后,接下来只要连接好电路,敲几行简单的代码,就可以让我们的神灯闪烁起来!
连接电路

image.png

跟点亮LED神灯一样,只需要简单的一步,即可连接好我们的电路。唯一需要注意的是,LED的长针脚要插入13号孔,短针脚插入GND地线孔内,这一点千万别搞反了哦!最后,需要用USB线把Arduino连接到电脑上,连好之后会看到Arduino电路板上的一个小电源灯被点亮!
添加几行代码好!最后我们需要添加两行简单的代码,即可大功告成!
首先打开Arduino的IDE,新建一个Arduino项目窗口。

image.png

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

  1. int led = 13;  // 定义针脚号,数字类型为整型
  2. // 对Arduino电路板或相关状态进行初始化方法
  3. void setup() {
  4.   // 设定13号针脚为输出状态,
  5.   // pinMode()方法是Arduino类库提供的系统方法,
  6.   // 调用的时候需要传入两个参数。
  7.   // 一个是针脚号,另一个是针脚号的状态。
  8.   pinMode(led, OUTPUT);
  9. }
  10. // 系统调用,无限循环方法
  11. void loop() {
  12.   // 向13号针脚输出值为高电压状态,
  13.   // 此值可以点亮LED神灯。
  14.   // digitalWrite()方法也是Arduino类库提供的系统方法,
  15.   // 调用的时候需要传入两个参数,
  16.   // 一个是针脚号,另一个是针脚号的状态。
  17.   // 这里需要注意的是,pinMode()方法是初始化针脚状态,
  18.   // digitalWrite()方法是向此针脚号不断发送状态。
  19.   digitalWrite(led, HIGH);
  20.   // delay()方法是Arduino自身类库提供的方法,
  21.   // 功能是让时间延迟,其中传入的参数为毫秒单位,
  22.   // 1000毫秒 = 1秒
  23.   delay(1000);
  24.   // 此处向Arduino的13针脚发送低电压状态,
  25.   // 此状态可以让LED神灯熄灭
  26.   digitalWrite(led, LOW);
  27.   // 再次延迟1000毫秒,也即1秒钟,
  28.   delay(1000);
  29.   // 随后进入下一次loop循环,
  30.   // 即调用上面的digitalWrite(led, HIGH)方法,
  31.   // 让LED神灯再次点亮。
  32.   // 如此不断循环下去。
  33. }
敲完收工!看起来代码好长的样子,注意千万别被上面冗长的中文注释所吓住!删除注释,比起点亮LED神灯,其实我们只多添加了三行代码!而且三行代码里还有两行是重复的!不能要求再简单了!
新添加的三行代码里,出现了一个新面孔,那就是delay()方法,这个方法的功能是进行时间延迟的,方法的调用需要传入一个时间参数,参数的单位为毫秒,比如传入1000,那么等于在这行代码上停留1秒钟,随后程序才会自动继续向下执行。
好!接下来还剩下最后一步,把代码烧入Arduino!在点亮LED神灯那一节,我们知道这一步可以一气呵成,只需要点击新建项目文件上,那个指向右侧箭头图标,即可自动完成代码的烧入。

image.png

220521nltoiuannani0ttp.jpg

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

如果在此操作中碰到了连接Arduino的失败错误,可以查看点亮LED神灯那一节中,关于这部分需要注意的两个小细节。
总结是不是很简单?其实只需要多加一个新方法,就可以实现LED神灯的闪烁效果!这一节中,我们新认识一个延时方法,名字叫delay(),只是多添加了这一个方法,就完成了最终效果。So easy!
下期预告这一节我们只是实现了让LED神灯点亮和熄灭,期间只有两个状态。那如何让LED神灯逐步点亮和逐步熄灭呢?嗯,下一次我们将迎接一个新的挑战,让LED神灯逐渐变亮和逐渐熄灭!