主题:时间可调自助红绿灯 器件:Atmega328P主控板1块,交通灯模块2个,电位器模块1个,按键模块1个,蜂鸣器模块1个。以上模块也可使用分立器件结合面包板搭建。 任务要求: 1.当自助式红绿灯的按钮没有被按下时,主路显示为绿灯,人行道显示为红灯。 2.当按钮被按下后,主路的绿灯延时2秒后由绿灯经黄灯转换为红灯。 3.当主路为红灯时,人行道的绿灯点亮并闪烁,闪烁时间间隔为500毫秒。 4.人行道的通行时间为8秒~12秒,可以通过电位器调整,并将当前的通行时间显示在串口监视器上。 5.当人行道的绿灯还剩余4秒时,绿灯快速闪烁,闪烁时间间隔为250毫秒,提醒行人快速通过。 6.当人行道的绿灯还剩余4秒,绿灯快速闪烁的同时,声音提醒。声音提醒的方式选用蜂鸣器模块。 7.人行道通行时间结束,人行道红灯点亮,主路绿灯点亮,蜂鸣器静音。 8.根据上述要求,绘制流程图。 9.未作规定处可自行处理,无明显与事实违背即可。 10.编写程序文件命名规则为:DJKS3_身份证号,考试完毕上传备案。 程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
【喵呜刷题小喵解析】这个答案使用C语言编程,符合Atmega328P主控板的使用规范。它定义了一些LED和按钮的引脚,并创建了一个`pedestrian_time_remaining`变量来跟踪人行道绿灯的剩余时间。在`setup()`函数中,它设置了所有LED和按钮的引脚为输出模式。在`loop()`函数中,它首先检查按钮是否被按下。如果按钮被按下,则执行一系列LED闪烁,模拟主路绿灯的延时转换。然后,它进入一个循环,根据`pedestrian_time_remaining`的值,控制人行道的绿灯闪烁。当绿灯剩余时间少于或等于4秒时,它会快速闪烁并启动蜂鸣器。当绿灯时间结束后,人行道红灯点亮,主路绿灯点亮,蜂鸣器静音。如果按钮没有被按下,主路显示为绿灯,人行道显示为红灯。注意,此答案只是一个基本实现,并未包含电位器调整人行道通行时间的代码,也未绘制流程图。这些部分可能需要进一步补充和完善。