Hi,大家好!经过前几次的学习,我们对Arduino有了基本的了解。接下来我们将继续深入的学习。 还记得吗?在前几次的学习过程中,我们曾经多次使用到了delay()这个可以让时间延迟的方法。为了在接下来的学习过程中,能够更灵活的对延时进行控制,这一次,我们试着挑战一下如何在不使用delay()方法的情况下,依然可以做到时间延时! 开始之前,还让我们准备一下所需的材料。 硬件方面![]() 图片来源:Arduino 电路配件 具体包括如下:
配件看起来是不是很眼熟?其实和点亮LED神灯所需的配件一样的。不仅如此,电路的连接上也是一样的呢! 软件方面Arduino官方提供的IDE。 连接电路![]() 图片来源:Arduino连接LED电路示意图 看看是不是和之前学过的点亮LED神灯的电路连接是一样的?毕竟这次我们的重点在程序,电路起到的是一个辅助的角色。好!关于这个就不啰嗦了,下面重点看程序! 添加几行代码首先打开Arduino的IDE,新建一个Arduino项目窗口。 ![]() 图片来源:Arduino官方IDE 新建完成之后,向其中添加几行代码。如下:
哈!今天的代码猛然看起来有点长。其实吧,还好,还好!如果删除代码注释,其实也是很简短滴!叫板的话,今天的代码里其实也只出现了一个新面孔,那就是millis()方法。这个方法的作用是获取当前的时间,返回的数值为无符号长整型,时间单位是毫秒。loop()方法中的if语句,作用就是判断上一次的时间和当前时间的间隔是否大于等于interval数值,此处设置的为1秒钟。如果大于等于1秒钟,则重新记录,将previousMillis变量设置为当前时间,即currentMillis数值。 图片来源:Arduino官方IDE的文件编辑菜单选项 最后点击上图中指向右侧的箭头图标,将代码烧入Arduino UNO电路板中。现在看看LED灯是否是每隔1秒钟闪烁一次?你还可以在interval数值定义的地方更改其数值,重新将代码烧入Arduino UNO电路板,以加快或减慢LED灯闪烁的频率。 总结今天我们一起学习了如何在不使用delay()方法的情况下实现时间延迟。不使用delay()方法的好处是,可以在每次延迟中加入自定义逻辑,在每次延迟的过程中完成多个操作。 下期预告前面的学习,我们每次只涉及一个元器件。接下来,我们将尝试加入多个元器件。下一次,我们将尝试用开关按键控制LED神灯的亮和灭! ohcoder的系列精彩Arduino教程: Arduino教程-初识Arduino(包含本教程目录):http://www./bbs/dpj-41334-1.html Arduino教程-开篇:http://www./bbs/dpj-41335-1.html Arduino教程-点亮LED神灯:http://www./bbs/dpj-41336-1.html Arduino教程-让LED神灯闪烁:http://www./bbs/dpj-41337-1.html Arduino教程-让LED神灯亮度渐变:http://www./bbs/dpj-41338-1.html Arduino教程-获取输入数字信号:http://www./bbs/dpj-41339-1.html Arduino教程-获取输入模拟信号:http://www./bbs/dpj-41340-1.html Arduino教程-另一种时间延迟:http://www./bbs/dpj-41331-1.html Arduino教程-按键开关:http://www./bbs/dpj-41341-1.html Arduino教程-停止抖动!:http://www./bbs/dpj-41333-1.html Arduino教程-抛弃外部电阻!:http://www./bbs/dpj-41332-1.html Arduino教程-用按键开关计数:http://www./bbs/dpj-41330-1.html ………后续持续更新中请打开:http://www./bbs/dpj-41334-1.html |
|