链接: https://pan.baidu.com/s/1o8RxYLs
密码: sgub
《一块面包板带你玩转Arduino编程》
IP4A.4-LED随机灯(变量、随机数、数学的使用)
特别提示:书中进阶题目主要目的是用作学生学习结果评估的,所以一般不提供直接的答案,不过本题目咨询的老师和学生比较多,所以在这里简单视频讲解一下思路!
编程练习平台简介
本节指导侧重编程逻辑与能力的培养与指导,采用了具备12个板载LED(共地)的扩展板来完成,无需额外插接LED元器件,非常适合逻辑类编程任务赛的程序编写测试与验证。
本 节 微 课
题目要求
看清题目:
任意选3个支持PWM输出的端口,在随机点亮红、绿、蓝3种颜色的LED时,实现一个渐亮而另外一个渐灭的效果,单次循环周期依然要求为2秒,其中渐变过程要求为1秒,保持过程为1秒,循环执行,点亮顺序不可重复且3种颜色都要有机会被点亮。
题目分析
找关键词:
硬件端口看清楚:
任意3个支持PWM输出端口
我们选取9-10-11三个连续端口来降低编程难度
软件流程列详细:
先选取两个随机数
再将两个随机数对应的灯按要求进行呼吸操作
状态变化时间:渐变时间1秒;保持时间1秒
其它关键词别错过:
同时运行
题目电路连接(略)
关键词:颜色不同
题目程序编写与验证
先分析状态关系:新的灯渐亮,前一个灯渐灭同时发生
再分析每组状态的逻辑实现方式:新旧两个灯的PWM之和不变
最后根据逻辑实现方式编写程序:利用数学关系实现同时控制
关键注意事项:
正确程序的答案并不是唯一的
领取专属 10元无门槛券
私享最新 技术干货