![Arduino互动设计](https://wfqqreader-1252317822.image.myqcloud.com/cover/204/27741204/b_27741204.jpg)
挑战自我:使用面包板制作跑马灯
跑马灯,顾名思义为多个LED灯依次亮起,然后同时熄灭,达到“跑马”的效果。现在部分车辆的转向灯,也采用跑马灯的效果,实现强调“转向”的作用。下面尝试使用面包板连接多个LED灯,实现跑马灯效果。
积木新知
计次循环
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0023_0002.jpg?sign=1738887967-sUOHJM482E1wyRxv1QYRuIP5PHtmMqPQ-0-5de5587deac30c6d7545d41a202ff8ac)
“计次循环”积木用于实现执行一定次数的循环结构。
该积木中有4个参数:参数1是变量名,单击或选定“i”可输入变量名;参数2是变量i的起始值;参数3是变量i的终点值;参数4是变量i的步长,步长是相邻两次循环之间的跨度。变量名可自定义,支持中文命名;起始值、终点值和步长都可以自行设定。变量i在计次循环里是一种特殊存在方式,此处了解即可,变量概念在第4课里详述。该积木位于“控制”模块中,具体位置如下。
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0024_0001.jpg?sign=1738887967-MkvBQZfOPJmep1FsNJjqDn5ijdJG5k3X-0-60aabde3d2ef7a1f0ab63c9eb74b6dde)
范例
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0024_0002.jpg?sign=1738887967-3SAIt33V41H6v8AZT1yqxBUPqLLH0aEk-0-c124f961296e57b477dc3490e4b96233)
范例结果
实验箱上的LED灯,每隔1秒闪烁一次;循环10次后,等待5秒再重新开始下一轮循环闪烁。
积木新知
变量i
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0024_0003.jpg?sign=1738887967-VsZts8cjHnlDHCnFK2ngLBzmFAD5AM6z-0-d7d1084a98a84b8253a3f02da2dfe247)
“变量i”积木位置如下。
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0025_0001.jpg?sign=1738887967-SC5i2pNi497IEZ4LdJ4skvIVCpjXeVnH-0-ea7612786f371fce312ace13c56ada9d)
要显示变量i,需要将计次循环积木拖到编程区,才能在变量积木模块中显示变量i积木。如果变量i被重命名,则变量积木分类中显示重命名的变量积木。
硬件连接
将实验箱上的开关拨至“OFF”位置,将4个LED灯(绿、黄、红、蓝各1个)和4个1kΩ电阻按下图连接;并使用若干公对公杜邦线,将其中4根线的一端插接在面包板上,另一端分别连接至主板的9~12号管脚。
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0025_0003.jpg?sign=1738887967-erJIVteULBBmhW2YO8zMjT12NjuUa4KT-0-9dcee03a5119f3eb384c7b36ba7e4b37)
编程思路
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0026_0001.jpg?sign=1738887967-cSEvIhhLqkJlvgPlJQ3VPXkGLsy8Jnk0-0-258a8106954063ffb2bb3d68e79c40ee)
面包板上的跑马灯程序流程图
根据流程图用顺序结构的方式分别设置9号、10号、11号、12号管脚输出高电平300毫秒,实现依次亮起;接着同时输出低电平300毫秒,实现同时关闭的效果。
范例程序
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0026_0002.jpg?sign=1738887967-ADLPllL1EpP8vIAJNjLw7fW4bS6ag6pb-0-daff0abde1d89c9db91840fbb8c93c10)
面包板上的跑马灯程序
通过观察程序可知,这4个LED灯亮起的积木是重复的,只是管脚不同,因而可以用新的结构——循环结构。
知识加油站
循环结构
循环结构是重复执行一个或几个积木的程序结构,它可以大幅降低编程的工作量。由于在设计Mixly软件时将无限循环设计成默认状态,所以在控制模块里找不到无限循环。下面用计次循环编写跑马灯程序。
编程思路
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0027_0001.jpg?sign=1738887967-tbCSh35Lx8TuUsLLnKuQ8bJoZRe7tSBI-0-3cc2c180dec332276536064ed453d003)
计次循环结构的跑马灯程序流程图
范例程序
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0027_0002.jpg?sign=1738887967-uCrIP3yhKiXoR9AuS6yn1ObvuqQ3mb4k-0-d47f254c1ffca3b5a5bcc2f4ff0becf6)
计次循环结构的跑马灯程序