Hi,大家好!上一次我们试着让Arduino点亮了一盏LED神灯。这一次我们更进一步,让这盏LED神灯闪烁起来!
像之前一样,我们首先需要在硬件和软件方面做一些准备。
硬件方面
图片来源:Arduino-UNO-LED
具体包括如下:
- Arduino UNO电路板(1块)
- mini面包板(1块)
- 220欧姆电阻(1个)
- LED灯(1盏)
- 面包线(2根)
软件方面只需要Arduino官方提供的IDE即可。
准备好上面这些之后,接下来只要连接好电路,敲几行简单的代码,就可以让我们的神灯闪烁起来!
连接电路
图片来源:Arduino连接LED电路示意图
跟点亮LED神灯一样,只需要简单的一步,即可连接好我们的电路。唯一需要注意的是,LED的长针脚要插入13号孔,短针脚插入GND地线孔内,这一点千万别搞反了哦!最后,需要用USB线把Arduino连接到电脑上,连好之后会看到Arduino电路板上的一个小电源灯被点亮!
添加几行代码好!最后我们需要添加两行简单的代码,即可大功告成!
首先打开Arduino的IDE,新建一个Arduino项目窗口。
图片来源:Arduino官方IDE
新建完成之后,需要向其中添加几行代码。
- 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官方IDE的文件编辑菜单选项(注意此处不是指Arduino顶部工具栏)
如果在此操作中碰到了连接Arduino的失败错误,可以查看点亮LED神灯那一节中,关于这部分需要注意的两个小细节。
总结是不是很简单?其实只需要多加一个新方法,就可以实现LED神灯的闪烁效果!这一节中,我们新认识一个延时方法,名字叫delay(),只是多添加了这一个方法,就完成了最终效果。So easy!
下期预告这一节我们只是实现了让LED神灯点亮和熄灭,期间只有两个状态。那如何让LED神灯逐步点亮和逐步熄灭呢?嗯,下一次我们将迎接一个新的挑战,让LED神灯逐渐变亮和逐渐熄灭!
ohcoder的系列精彩Arduino教程:
Arduino教程-初识Arduino(包含本教程目录):http://www.51hei.com/bbs/dpj-41334-1.html
Arduino教程-开篇:http://www.51hei.com/bbs/dpj-41335-1.html
Arduino教程-点亮LED神灯:http://www.51hei.com/bbs/dpj-41336-1.html
Arduino教程-让LED神灯闪烁:http://www.51hei.com/bbs/dpj-41337-1.html
Arduino教程-让LED神灯亮度渐变:http://www.51hei.com/bbs/dpj-41338-1.html
Arduino教程-获取输入数字信号:http://www.51hei.com/bbs/dpj-41339-1.html
Arduino教程-获取输入模拟信号:http://www.51hei.com/bbs/dpj-41340-1.html
Arduino教程-另一种时间延迟:http://www.51hei.com/bbs/dpj-41331-1.html
Arduino教程-按键开关:http://www.51hei.com/bbs/dpj-41341-1.html
Arduino教程-停止抖动!:http://www.51hei.com/bbs/dpj-41333-1.html
Arduino教程-抛弃外部电阻!:http://www.51hei.com/bbs/dpj-41332-1.html
Arduino教程-用按键开关计数:http://www.51hei.com/bbs/dpj-41330-1.html
………后续持续更新中请打开:http://www.51hei.com/bbs/dpj-41334-1.html
|