![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=1739273497-mNhZjmocAuI4EWdGVk6LZGgtlK3NR8Cy-0-20168f8abb449ff9fcf439aba554f64c)
“计次循环”积木用于实现执行一定次数的循环结构。
该积木中有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=1739273497-mqMyo1UvgKUjUhHqMI5RSBjqTM4fWGO5-0-12b0797d0cf4241744ebb912c428b15a)
范例
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0024_0002.jpg?sign=1739273497-eaQ0XkbZXY556F6gVBVJ5sk2Vn6ug3Pn-0-82816b553a9fbfb2a3c18e12e0f409cc)
范例结果
实验箱上的LED灯,每隔1秒闪烁一次;循环10次后,等待5秒再重新开始下一轮循环闪烁。
积木新知
变量i
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0024_0003.jpg?sign=1739273497-hGiwadi8MnRvzjSEdCTsgdLjeOrhiknB-0-1170ad05def1617776873714de090f86)
“变量i”积木位置如下。
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0025_0001.jpg?sign=1739273497-AB3gf6WgY9pfRYddCxu05N8yZcgCCe5W-0-393f34118e37014a7514d749fc094b4c)
要显示变量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=1739273497-l3LpsB5byQDq3NQaop7vYGZfDRZchmpY-0-f7e32345b21d1a91ba901256420bed31)
编程思路
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0026_0001.jpg?sign=1739273497-6ddUZn1OtpmHoh3XD23baSQ8SQSkv7zf-0-ef5c41d8ba9a295d76106fc07e0f95ec)
面包板上的跑马灯程序流程图
根据流程图用顺序结构的方式分别设置9号、10号、11号、12号管脚输出高电平300毫秒,实现依次亮起;接着同时输出低电平300毫秒,实现同时关闭的效果。
范例程序
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0026_0002.jpg?sign=1739273497-WCDE8DpKwJo3eehP7pvtX2XL3twNQrbV-0-1c7d599f6d338fdf9aee02fa3c946539)
面包板上的跑马灯程序
通过观察程序可知,这4个LED灯亮起的积木是重复的,只是管脚不同,因而可以用新的结构——循环结构。
知识加油站
循环结构
循环结构是重复执行一个或几个积木的程序结构,它可以大幅降低编程的工作量。由于在设计Mixly软件时将无限循环设计成默认状态,所以在控制模块里找不到无限循环。下面用计次循环编写跑马灯程序。
编程思路
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0027_0001.jpg?sign=1739273497-QyDMl1TJ05RUaS498FPPjwi4ljrxWZ2e-0-848604194eefe1bcb796e98ad6568e43)
计次循环结构的跑马灯程序流程图
范例程序
![](https://epubservercos.yuewen.com/B0C18C/15937387804512006/epubprivate/OEBPS/Images/figure_0027_0002.jpg?sign=1739273497-03znQHebKP4AI2h0QFUxnGj1CBz0kxYw-0-8a123a4c03d98d5fef1428acf41a7a20)
计次循环结构的跑马灯程序